Visible to Intel only — GUID: nmp1741137386824
Ixiasoft
3.3.6.1.1. Machine Status Register (mstatus)
3.3.6.1.2. Machine Trap-Vector Base-Address Register (mtvec)
3.3.6.1.3. Machine Interrupt Register (mip and mie)
3.3.6.1.4. Machine Exception Program Counter Register (mepc)
3.3.6.1.5. Machine Cause Register (mcause)
3.3.6.1.6. Machine Trap Value Register (mtval)
4.3.1. General-Purpose Register File
4.3.2. Shadow Register
4.3.3. Arithmetic Logic Unit
4.3.4. Multipy and Divide Units
4.3.5. Floating-Point Unit
4.3.6. Custom Instruction
4.3.7. Instruction Cycles
4.3.8. Reset and Debug Signals
4.3.9. Control and Status Registers
4.3.10. Trap Controller (CLINT)
4.3.11. Trap Controller (CLIC)
4.3.12. Memory and I/O Organization
4.3.13. RISC-V based Debug Module
4.3.14. Error Correction Code (ECC)
4.3.15. Branch Prediction
4.3.16. Lockstep Module
4.3.10.1.1. Machine Status Register (mstatus)
4.3.10.1.2. Machine Trap-Vector Base-Address Register (mtvec)
4.3.10.1.3. Machine Interrupt Register (mip and mie)
4.3.10.1.4. Machine Exception Program Counter Register (mepc)
4.3.10.1.5. Machine Cause Register (mcause)
4.3.10.1.6. Machine Trap Value Register (mtval)
4.3.10.1.7. Machine Second Trap Value Register (mtval2)
4.3.11.1.2.1. Packing of Indirectly Accessed CLIC Registers
4.3.11.1.2.2. Read/Write clicintctl[i] and clicintattr[i]
To configure Interrupt 7 (Machine Timer Interrupt), index equals to 1
To configure Interrupt 40 (Platform Interrupt 25), index equals to 10
4.3.11.1.2.3. Read/Write clicintip[i] and clicintie[i]
4.3.11.1.3.1. Machine Trap-handler Vector Table base address Register (mtvt)
4.3.11.1.3.2. Machine Next Interrupt Handler Address and Interrupt Enable Register (mnxti)
4.3.11.1.3.3. Machine Interrupt Status Register (mintstatus)
4.3.11.1.3.4. Machine Interrupt-Level Threshold Register (mintthresh)
4.3.11.1.3.5. Machine Scratch Swap for Interrupt-Level Register (mscratchcswl)
Visible to Intel only — GUID: nmp1741137386824
Ixiasoft
4.3.11.1.2.2. Read/Write clicintctl[i] and clicintattr[i]
Based on the value of miselect register (Base value of 0x1000):
- The mireg register represents the clicintctl of four interrupts, which controls their respective CLIC level and priority.
- The mireg2 register represents the clicintattr of four interrupts, which controls their respective CLIC polarity and trigger.
miselect | Register | Bit Fields | Description |
---|---|---|---|
0x1000 + index | mireg | 7:0 | clicintctl of interrupt { index*4 + 0 } |
15:8 | clicintctl of interrupt { index*4 + 1 } | ||
23:16 | clicintctl of interrupt { index*4 + 2 } | ||
31:24 | clicintctl of interrupt { index*4 + 3 } | ||
mireg2 | 7:0 | clicintattr of interrupt { index*4 + 0 } | |
15:8 | clicintattr of interrupt { index*4 + 1 } | ||
23:16 | clicintattr of interrupt { index*4 + 2 } | ||
31:24 | clicintattr of interrupt { index*4 + 3 } |
To configure Interrupt 7 (Machine Timer Interrupt), index equals to 1
- miselect equals to 0x1001.
- mireg[31:24] holds the clicintctl of Interrupt 7.
- mireg2[31:24] holds the clicintattr of Interrupt 7.
To configure Interrupt 40 (Platform Interrupt 25), index equals to 10
- miselect equals to 0x100A.
- mireg[7:0] holds the clicintctl of Interrupt 40.
- mireg2[7:0] holds the clicintattr of Interrupt 40.