Changes between Version 11 and Version 12 of kernel_interrupts


Ignore:
Timestamp:
Mar 14, 2015, 11:34:16 AM (10 years ago)
Author:
alain
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • kernel_interrupts

    v11 v12  
    1414||channel_id ||bits[31:16]  || defines the channel for multi-channels ISR ||
    1515
    16 Regarding the allocation of interrupts to processors (IRQ routing using the XCU_MASK registers), the GIET-VM implement the following policy:
    17  * The GIET-VM uses only one XCU output IRQ per processor  (index = lpid * IRQ_PER_PROCESSOR), even if the hardware platform contains more than one IRQ_PER_PROCESSOR.
    18  * In each cluster the HWI (hardwareinterrupts generated by the local peripherals) are ''statically'' allocated to local processors.
    19  * In each cluster, one PTI (timer interrupt) is statically allocated to each processor for TICK context switch.
    20  * In each cluster, 4 WTI (mailbox interrupts) are allocated to each processor. For each processor, the first WTI mailbox is statically allocated to WAKUP (inter processor interrupt). The three other WTI mailbox are dynamically allocated to external IRQS generated by the external peripherals through the IOPIC component.
    21 All XCU masks for all processors are statically defined in the boot phase.
     16 == __Interrupt routing__ ==
     17
     18Regarding the allocation of interrupts to processors (IRQ routing using the XCU_MASK registers), the GIET-VM implement the following policy ('''lpid''' is the local processor index, between 0 and 7):
     19 1. The GIET-VM uses only one XCU output IRQ per processor  (with index = lpid * IRQ_PER_PROCESSOR), even if the hardware platform contains more than one IRQ_PER_PROCESSOR.
     20 2. In each cluster the local '''HWI''' (hardware interrupts) generated by the local peripherals are ''statically'' allocated to local processors.
     21 3. In each cluster, one '''PTI''' (timer interrupt) is statically allocated to each processor for context switch). The TICK period is defined by the GIET_TICK_VALUE parameter in the giet_config.h file.
     22 4. In each cluster, 4 '''WTI''' (mailbox interrupts) called WAKE_UP, EXT_IRQ_ONE, EXT_IRQ_TWO, EXT_IRQ_TER are statically allocated to each processor. The first one is used is used for processor wakup, or for others inter-processor interrupts.  The three other WTI mailbox are dynamically allocated to external IRQS generated by the external peripherals (through the IOPIC component), in order to route the IRQ to the processor that launched the I/O operation.
     23|| '''WTI name'''   || ''' WTI index''' ||
     24|| WAKE_UP       || lpid           ||
     25|| EXT_IRQ_ONE || NB_PROCS_MAX + lpid ||
     26|| EXT_IRQ_TWO || 2*NB_PROCS_MAX + lpid ||
     27|| EXT_IRQ_TER  || 3*NB_PROCS_MAX + lpid ||
     28
     29With this static allocation policy, XCU masks for all processors are statically defined in the boot phase.
    2230
    2331 == __Functions used for all HWI / PTI / WTI interrupts__ ==