zephyr/arch/common
Carlo Caione 86a67faeaa arch: Add support for IRQ vector tables with jump opcodes
The whole mechanism of IRQ table generation is build around the
assumption that the IRQ vector table contains an array of addresses the
PC will be assigned to when the corresponding interrupt is triggered.

While this is correct for the majority of architectures (ARM, RISCV with
CLIC in vectored mode, etc...) this is not valid in general (for example
RISCV with CLINT/HLINT in vectored mode).

In this alternative format for the IRQ vector table, the pc will get
assigned by the hardware to the address of the vector table index
corresponding to the interrupt ID. From the vector table index, a
subsequent jump will occur from there to service the interrupt.

This means that the IRQ vector table contains an opcode that is a jump
instruction to a specific location instead of the address of the
location itself.

This patch is introducing support for this alternative IRQ vector table
format. The user can now select one format or the other one by acting on
IRQ_VECTOR_TABLE_JUMP_BY_ADDRESS or IRQ_VECTOR_TABLE_JUMP_BY_CODE
Kconfig symbols.

Signed-off-by: Carlo Caione <ccaione@baylibre.com>
2022-07-07 10:00:20 +02:00
..
CMakeLists.txt irq: Fix IRQ vector table relocation 2022-06-28 12:29:42 +02:00
gen_isr_tables.py arch: Add support for IRQ vector tables with jump opcodes 2022-07-07 10:00:20 +02:00
isr_tables.c arch: Add support for IRQ vector tables with jump opcodes 2022-07-07 10:00:20 +02:00
Kconfig arch: common: dedicated SEMIHOST symbol 2022-04-21 13:04:52 +02:00
nocache.ld arm64: add nocache memory segment support 2021-10-20 08:56:40 -05:00
ramfunc.ld cmake: Add support to add symbols to ramfunc section 2022-04-18 17:24:12 -07:00
rom_start_offset.ld config: Rename TEXT_SECTION_OFFSET to ROM_START_OFFSET 2020-07-09 14:02:38 -04:00
semihost.c arch: common: semihost: add semihosting operations 2022-04-21 13:04:52 +02:00
sw_isr_common.c arch: migrate includes to <zephyr/...> 2022-05-06 19:57:22 +02:00
timing.c arch: migrate includes to <zephyr/...> 2022-05-06 19:57:22 +02:00