Skip to content

Commit

Permalink
Add interrupt vector table description
Browse files Browse the repository at this point in the history
Adds a tentative description of the interrupt vector table.
That has to be reviewed and adjusted.
  • Loading branch information
DanieleParravicini authored and DanieleParravicini-Synthara committed Jun 10, 2024
1 parent 93f7823 commit 897cda2
Showing 1 changed file with 79 additions and 0 deletions.
79 changes: 79 additions & 0 deletions doc/03_reference/exception_interrupts.rst
Original file line number Diff line number Diff line change
Expand Up @@ -165,3 +165,82 @@ If a synchronous exception occurs whilst ``cpuctrl``.sync_exception_seen is set,

When a double fault is detected, the ``double_fault_seen_o`` output is asserted for one cycle and ``cpuctrl``.double_fault_seen is set.
Note that writing the ``cpuctrl``.double_fault_seen field has no effect on the ``double_fault_seen_o`` output.


Interrupt vector table
----------------------

The interrupt vector table is located at ``mtvec``, and each entry can contain the code for
the interrupt/exception handling. The following table indicates the offset of the entry and
its description.

+-------------------------+------------------------------------------------------------+
| offset in bytes | Description |
+=========================+============================================================+
| 0x00 | Boot |
+-------------------------+------------------------------------------------------------+
| 0x04 | reserved |
+-------------------------+------------------------------------------------------------+
| 0x08 | reserved |
+-------------------------+------------------------------------------------------------+
| 0x0c | Machine software interrupt |
+-------------------------+------------------------------------------------------------+
| 0x10 | reserved |
+-------------------------+------------------------------------------------------------+
| 0x14 | reserved |
+-------------------------+------------------------------------------------------------+
| 0x18 | reserved |
+-------------------------+------------------------------------------------------------+
| 0x1c | Machine timer interrupt |
+-------------------------+------------------------------------------------------------+
| 0x20 | reserved |
+-------------------------+------------------------------------------------------------+
| 0x24 | reserved |
+-------------------------+------------------------------------------------------------+
| 0x28 | reserved |
+-------------------------+------------------------------------------------------------+
| 0x2c | Machine external interrupt |
+-------------------------+------------------------------------------------------------+
| 0x30 | reserved |
+-------------------------+------------------------------------------------------------+
| 0x34 | reserved |
+-------------------------+------------------------------------------------------------+
| 0x38 | reserved |
+-------------------------+------------------------------------------------------------+
| 0x3c | reserved |
+-------------------------+------------------------------------------------------------+
| 0x40 | irq_fast_i[0] |
+-------------------------+------------------------------------------------------------+
| 0x44 | irq_fast_i[1] |
+-------------------------+------------------------------------------------------------+
| 0x48 | irq_fast_i[2] |
+-------------------------+------------------------------------------------------------+
| 0x4c | irq_fast_i[3] |
+-------------------------+------------------------------------------------------------+
| 0x50 | irq_fast_i[4] |
+-------------------------+------------------------------------------------------------+
| 0x54 | irq_fast_i[5] |
+-------------------------+------------------------------------------------------------+
| 0x58 | irq_fast_i[6] |
+-------------------------+------------------------------------------------------------+
| 0x5c | irq_fast_i[7] |
+-------------------------+------------------------------------------------------------+
| 0x60 | irq_fast_i[8] |
+-------------------------+------------------------------------------------------------+
| 0x64 | irq_fast_i[9] |
+-------------------------+------------------------------------------------------------+
| 0x68 | irq_fast_i[10] |
+-------------------------+------------------------------------------------------------+
| 0x6c | irq_fast_i[11] |
+-------------------------+------------------------------------------------------------+
| 0x70 | irq_fast_i[12] |
+-------------------------+------------------------------------------------------------+
| 0x74 | irq_fast_i[13] |
+-------------------------+------------------------------------------------------------+
| 0x78 | irq_fast_i[14] |
+-------------------------+------------------------------------------------------------+
| 0x7c | irq_fast_i[15] |
+-------------------------+------------------------------------------------------------+
| 0x80 | irq_nm_i |
+-------------------------+------------------------------------------------------------+

0 comments on commit 897cda2

Please sign in to comment.