Changes between Version 4 and Version 5 of kernel_interrupts
- Timestamp:
- Oct 26, 2014, 12:35:48 AM (10 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
kernel_interrupts
v4 v5 2 2 3 3 4 The [source:soft/giet_vm/giet_kernel/irq_handler.c irq_handler.c] and [source:soft/giet_vm/giet_kernel/irq_handler.h irq_handler.h] files define the kernel data structure and functions that are used to handle interrupts. They are prefixed by " -" to remind that they can only be executed by a processor in kernel mode.4 The [source:soft/giet_vm/giet_kernel/irq_handler.c irq_handler.c] and [source:soft/giet_vm/giet_kernel/irq_handler.h irq_handler.h] files define the kernel data structure and functions that are used to handle interrupts. They are prefixed by "_" to remind that they can only be executed by a processor in kernel mode. 5 5 6 6 [[PageOutline]] 7 8 The GIET_VM interrupt handler supports only the SOCLIB ''vci_xcu'' interrupt controler, and does not support the ''vci_icu'' interrupt controler. In a multi-cluster architectures, it must exist one XCU controller in all clusters containing processors. Each multi-channel XCU component must contain as many channels as the number ofprocessors in the cluster (one output IRQ per processor). 7 9 8 10 There is three interrupt vectors per processor (stored in each processor's scheduler) for the three HWI, PTI, and WTI interrupts types. Each interrupt vector entry contains three bits fields: … … 16 18 17 19 === void '''_irq_demux'''() === 18 This function access the ICU or XCU component (Interrupt Controler Unit) to get the interrupt vector entry. There is one ICU or XICU component per cluster, and these components support several output IRQs (one output IRQ per processor in a given cluster).19 It uses the [source:soft/giet_vm/giet_drivers/xcu_driver.c _xcu_get_index()] or [source:soft/giet_vm/giet_drivers/icu_driver.c _icu_get_index()] functions to get the IRQ type (HWI / PTI / WTI), and the index in the corresponding interrupt vector.20 This function access the XCU component to get the interrupt vector entry: 21 It uses the [source:soft/giet_vm/giet_drivers/xcu_driver.c _xcu_get_index()] functions to get the IRQ type ( HWI / PTI / WTI ), and the index in the corresponding interrupt vector. 20 22 Any index value larger than 31 means "no active interrupt", and the default ISR is executed. 21 23