Skip to content

Commit e315edd

Browse files
Update cve2 docs about boot_addr_i
Removes the reference to the boot_addr_i+0x80 that was coming from legacy documentation and substitute with boot_addr_i where necessary.
1 parent 65d53a7 commit e315edd

File tree

2 files changed

+19
-18
lines changed

2 files changed

+19
-18
lines changed

doc/02_user/integration.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,7 @@ Interfaces
130130
| | | | from :ref:`csr-mhartid` CSR |
131131
+----------------------------+-------------------------+-----+----------------------------------------+
132132
| ``boot_addr_i`` | 32 | in | First program counter after reset |
133-
| | | | = ``boot_addr_i`` + 0x80, |
133+
| | | | = ``boot_addr_i``, |
134134
| | | | see :ref:`exceptions-interrupts` |
135135
+----------------------------+-------------------------+-----+----------------------------------------+
136136
| ``instr_*`` | Instruction fetch interface, see :ref:`instruction-fetch` |

doc/03_reference/exception_interrupts.rst

Lines changed: 18 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,18 @@
33
Exceptions and Interrupts
44
=========================
55

6-
Ibex implements trap handling for interrupts and exceptions according to the RISC-V Privileged Specification, version 1.11.
6+
Ibex implements trap handling for interrupts and exceptions according to the `RISC-V Privileged Specification, version 20211203 <https://drive.google.com/file/d/1EMip5dZlnypTk7pt4WWUKmtjUKTOkBqh/view>`.
77

88
When entering an interrupt/exception handler, the core sets the ``mepc`` CSR to the current program counter and saves ``mstatus``.MIE to ``mstatus``.MPIE.
99
All exceptions cause the core to jump to the base address of the vector table in the ``mtvec`` CSR.
10-
Interrupts are handled in vectored mode, i.e., the core jumps to the base address plus four times the interrupt ID.
10+
Interrupts are handled in vectored mode, i.e., the core jumps to the base address plus the interrupt ID times 4.
1111
Upon executing an MRET instruction, the core jumps to the program counter previously saved in the ``mepc`` CSR and restores ``mstatus``.MPIE to ``mstatus``.MIE.
1212

1313
The base address of the vector table is initialized to the boot address (must be aligned to 256 bytes, i.e., its least significant byte must be 0x00) when the core is booting.
1414
The base address can be changed after bootup by writing to the ``mtvec`` CSR.
1515
For more information, see the :ref:`cs-registers` documentation.
1616

17-
The core starts fetching at the address made by concatenating the most significant 3 bytes of the boot address and the reset value (0x80) as the least significant byte.
17+
The core starts fetching at ``boot_addr_i``, see :ref:`core-integration` .
1818
It is assumed that the boot address is supplied via a register to avoid long paths to the instruction fetch unit.
1919

2020
Privilege Modes
@@ -29,20 +29,21 @@ Interrupts
2929

3030
Ibex supports the following interrupts.
3131

32-
+-------------------------+-------+--------------------------------------------------+
33-
| Interrupt Input Signal | ID | Description |
34-
+=========================+=======+==================================================+
35-
| ``irq_nm_i`` | 31 | Non-maskable interrupt (NMI) |
36-
+-------------------------+-------+--------------------------------------------------+
37-
| ``irq_fast_i[14:0]`` | 30:16 | 15 fast, local interrupts |
38-
+-------------------------+-------+--------------------------------------------------+
39-
| ``irq_external_i`` | 11 | Connected to platform-level interrupt controller |
40-
+-------------------------+-------+--------------------------------------------------+
41-
| ``irq_timer_i`` | 7 | Connected to timer module |
42-
+-------------------------+-------+--------------------------------------------------+
43-
| ``irq_software_i`` | 3 | Connected to memory-mapped (inter-processor) |
44-
| | | interrupt register |
45-
+-------------------------+-------+--------------------------------------------------+
32+
+-------------------------+-------+------------------------------------------------------------+
33+
| Interrupt Input Signal | ID | Description |
34+
+=========================+=======+============================================================+
35+
| ``irq_software_i`` | 3 | Connected to memory-mapped (inter-processor) |
36+
| | | interrupt register (a.k.a. Machine software interrupt) |
37+
+-------------------------+-------+------------------------------------------------------------+
38+
| ``irq_timer_i`` | 7 | Connected to timer module (a.k.a. Machine timer interrupt) |
39+
+-------------------------+-------+------------------------------------------------------------+
40+
| ``irq_external_i`` | 11 | Connected to platform-level interrupt controller |
41+
| | | (a.k.a. Machine external interrupt) |
42+
+-------------------------+-------+------------------------------------------------------------+
43+
| ``irq_fast_i[15:0]`` | 31:16 | 16 fast, local interrupts |
44+
+-------------------------+-------+------------------------------------------------------------+
45+
| ``irq_nm_i`` | 32 | Non-maskable interrupt (NMI) |
46+
+-------------------------+-------+------------------------------------------------------------+
4647

4748
All interrupts except for the non-maskable interrupt (NMI) are controlled via the ``mstatus``, ``mie`` and ``mip`` CSRs.
4849
After reset, all interrupts are disabled.

0 commit comments

Comments
 (0)