| 10 | | It can concentrate up to |
| 11 | | * 32 independent interrupt lines |
| 12 | | * 32 independent timers |
| 13 | | * 32 IPI registers |
| 14 | | multiplexing to up to 32 output lines |
| 15 | | |
| | 10 | This controller is an interrupt hub, concentrating 3 types of interrupts: |
| | 11 | * up to 32 internal programmable timer interrupts (PTI), |
| | 12 | * up to 32 external hardware interrupt lines (HWI), |
| | 13 | * up to 32 internal write-triggered interrupts (WTI). |
| | 14 | All these interrupt sources can be routed to up to 32 interrupt outputs. Each output can |
| | 15 | mask individual interrupt sources. |
| | 16 | Priority between interrupt source types is left to the handling operating system. Priority |
| | 17 | of interrupts inside an interrupt source type is from the lowestIdx(highest priority) to |
| | 18 | the highestIdx(lower priority). |
| | 21 | |
| | 22 | === 1.1) Constructor Parameters === |
| | 23 | |
| | 24 | All hardware implementations of this component may not implement all the up-to-32 |
| | 25 | PTI (Timers), up-to-32 HWI lines, up-to-32 WTI registers and up-to-32 OUTPUTlines. |
| | 26 | The following parameters allow the system designer to get just the needed hardware. |
| | 27 | |
| | 28 | * pti count (in range0..32): number of programmable timers |
| | 29 | * hwi count (in range0..32): number of external hardware interrupt lines |
| | 30 | * wti count (in range0..32): number of write-triggered interrupt sources |
| | 31 | * irqcount (in range1..32): number of output interrupt lines |
| | 32 | |
| | 33 | === 1.2) Programmers's View === |
| | 34 | |
| | 35 | This component can be mapped anywhere in the address space, on a 4-KiBboundary. This component is 32-bit data-word based: arbitrary byte access is not supported. |
| | 36 | 12 lower address lines are used the following way: |
| | 37 | |
| | 38 | || FUNC || INDEX || 00 || |
| | 39 | || 5 bits || 5bits || || |
| | 40 | |
| | 41 | * '''FUNC''' indicates the functionnality |
| | 42 | * '''IDX''' index in the range 0...31 |
| | 43 | |
| | 44 | ||MODE|| Register || FUNC || INDEX || |
| | 45 | ||R/W || WTI_REG || 00000 || WTI_IDX || |
| | 46 | ||R/W || PTI_PER || 00001 || PTI_IDX || |
| | 47 | ||R/W || PTI_VAL || 00010 || PTI_IDX || |
| | 48 | ||W || PTI_ACK || 00011 || PTI_IDX || |
| | 49 | |
| | 50 | ||R/W || MSK_PTI || 00100 || 0UT_IDX || |
| | 51 | ||W || MSK_PTI_ENABLE || 00101 || OUT_IDX || |
| | 52 | ||W || MSK_PTI_DISABLE || 00110 || OUT_IDX || |
| | 53 | ||R || PTI_ACTIVE || 00110 || OUT_IDX || |
| | 54 | |
| | 55 | ||R/W || MSK_HWI || 01000 || OUT_IDX || |
| | 56 | ||W || MSK_HWI_ENABLE || 01001 || OUT_IDX || |
| | 57 | ||W || MSK_HWI_DISABLE || 01010 || OUT_IDX || |
| | 58 | ||R || HTI_ACTIVE || 01010 || OUT_IDX || |
| | 59 | |
| | 60 | ||R/W || MSK_WTI || 01100 || OUT_IDX || |
| | 61 | ||W || MSK_WTI_ENABLE || 01101 || OUT_IDX || |
| | 62 | ||W || MSK_WTI_DISABLE || 01110 || OUT_IDX || |
| | 63 | ||R || WTI_ACTIVE || 01110 || OUT_IDX || |
| | 64 | |
| | 65 | ||R/W || WTI_REG_WTI_IDX || 00000 || WTI_IDX || |
| | 66 | ||R/W || WTI_REG_WTI_IDX || 00000 || WTI_IDX || |
| | 67 | ||R/W || WTI_REG_WTI_IDX || 00000 || WTI_IDX || |
| | 68 | ||R/W || WTI_REG_WTI_IDX || 00000 || WTI_IDX || |
| | 69 | ||R/W || WTI_REG_WTI_IDX || 00000 || WTI_IDX || |
| | 70 | ||R/W || WTI_REG_WTI_IDX || 00000 || WTI_IDX || |
| | 71 | ||R/W || WTI_REG_WTI_IDX || 00000 || WTI_IDX || |
| | 72 | ||R/W || WTI_REG_WTI_IDX || 00000 || WTI_IDX || |
| | 73 | ||R/W || WTI_REG_WTI_IDX || 00000 || WTI_IDX || |
| | 74 | ||R/W || WTI_REG_WTI_IDX || 00000 || WTI_IDX || |
| | 75 | ||R/W || WTI_REG_WTI_IDX || 00000 || WTI_IDX || |