|
| 1 | +# yaml-language-server: $schema=../../../schemas/csr_schema.json |
| 2 | + |
| 3 | +$schema: "csr_schema.json#" |
| 4 | +kind: csr |
| 5 | +name: vsip |
| 6 | +address: 0x244 |
| 7 | +virtual_address: 0x144 |
| 8 | +long_name: Virtual Supervisor Interrupt Pending |
| 9 | +description: | |
| 10 | + The `vsip` register is a VSXLEN-bit read/write register that is VS-mode’s version of the `sip` CSR. |
| 11 | + When V=1, instructions that normally access `sip` instead access `vsip`. It holds the pending |
| 12 | + interrupt status for supervisor-level traps in a virtualized environment. |
| 13 | +
|
| 14 | + However, interrupts directed to HS-level continue to be indicated in the HS-level `sip` register, |
| 15 | + not in `vsip`, when V=1. |
| 16 | +
|
| 17 | + The standard portion (bits 15:0) includes individual interrupt-pending bits. |
| 18 | +priv_mode: VS |
| 19 | +definedBy: H |
| 20 | +length: VSXLEN |
| 21 | +fields: |
| 22 | + SSIP: |
| 23 | + location: 1 |
| 24 | + type: RW-H |
| 25 | + reset_value: UNDEFINED_LEGAL |
| 26 | + alias: hip.VSSIP[0] |
| 27 | + description: | |
| 28 | + *Supervisor Software Interrupt Pending* |
| 29 | +
|
| 30 | + Indicates a pending software interrupt at the supervisor level. |
| 31 | + Read-only zero when `hideleg[2] == 0`, else aliased to `hip.VSSIP[0]`. |
| 32 | +
|
| 33 | + STIP: |
| 34 | + location: 5 |
| 35 | + type: RW-H |
| 36 | + reset_value: UNDEFINED_LEGAL |
| 37 | + alias: hip.VSTIP[0] |
| 38 | + description: | |
| 39 | + *Supervisor Timer Interrupt Pending* |
| 40 | +
|
| 41 | + Indicates a pending timer interrupt at the supervisor level. |
| 42 | + Read-only zero when `hideleg[6] == 0`, else aliased to `hip.VSTIP[0]`. |
| 43 | +
|
| 44 | + SEIP: |
| 45 | + location: 9 |
| 46 | + type: RW-H |
| 47 | + reset_value: UNDEFINED_LEGAL |
| 48 | + alias: hip.VSEIP[0] |
| 49 | + description: | |
| 50 | + *Supervisor External Interrupt Pending* |
| 51 | +
|
| 52 | + Indicates a pending external interrupt at the supervisor level. |
| 53 | + Read-only zero when `hideleg[10] == 0`, else aliased to `hip.VSEIP[0]`. |
| 54 | +
|
| 55 | + LCOFIP: |
| 56 | + location: 13 |
| 57 | + type: RW-H |
| 58 | + reset_value: UNDEFINED_LEGAL |
| 59 | + alias: sip.LCOFIP[0] |
| 60 | + description: | |
| 61 | + *Local Counter Overflow Interrupt Pending* |
| 62 | +
|
| 63 | + Indicates an overflow of a local counter. |
| 64 | + Read-only zero when `hideleg[13] == 0`, else aliased to `sip.LCOFIP[0]`. |
0 commit comments