riscv: Disable IRQ_VECTOR_TABLE_JUMP_BY_CODE for CLIC
Quoting from the SiFive Interrupt Cookbook [0] CLIC vectored mode has a similar concept to CLINT vectored mode, where an interrupt vector table is used for specific interrupts. However, in CLIC vectored mode, the handler table contains the address of the interrupt handler instead of an opcode containing a jump instruction. When an interrupt occurs in CLIC vectored mode, the address of the handler entry from the vector table is loaded and then jumped to in hardware So, when CLIC is present we must use IRQ_VECTOR_TABLE_JUMP_BY_ADDRESS instead of IRQ_VECTOR_TABLE_JUMP_BY_CODE. [0] https://starfivetech.com/uploads/sifive-interrupt-cookbook-v1p2.pdf Signed-off-by: Carlo Caione <ccaione@baylibre.com>
This commit is contained in:
parent
850cdc9196
commit
dd0bf0e59a
|
@ -421,7 +421,7 @@ config ARCH_IRQ_VECTOR_TABLE_ALIGN
|
|||
choice IRQ_VECTOR_TABLE_TYPE
|
||||
prompt "IRQ vector table type"
|
||||
depends on GEN_IRQ_VECTOR_TABLE
|
||||
default IRQ_VECTOR_TABLE_JUMP_BY_CODE if RISCV
|
||||
default IRQ_VECTOR_TABLE_JUMP_BY_CODE if (RISCV && !RISCV_HAS_CLIC)
|
||||
default IRQ_VECTOR_TABLE_JUMP_BY_ADDRESS
|
||||
|
||||
config IRQ_VECTOR_TABLE_JUMP_BY_ADDRESS
|
||||
|
|
Loading…
Reference in a new issue