File tree Expand file tree Collapse file tree 7 files changed +13
-6
lines changed
cmake/linker_script/common Expand file tree Collapse file tree 7 files changed +13
-6
lines changed Original file line number Diff line number Diff line change @@ -462,6 +462,7 @@ config ISR_TABLES_LOCAL_DECLARATION
462
462
463
463
config DYNAMIC_INTERRUPTS
464
464
bool "Installation of IRQs at runtime"
465
+ select SRAM_SW_ISR_TABLE
465
466
help
466
467
Enable installation of interrupts at runtime, which will move some
467
468
interrupt-related data structures to RAM instead of ROM, and
@@ -581,6 +582,12 @@ config SRAM_VECTOR_TABLE
581
582
The option specifies that the vector table will be placed at the
582
583
start of SRAM instead of the start of the flash when XIP is enabled.
583
584
585
+ config SRAM_SW_ISR_TABLE
586
+ bool
587
+ help
588
+ The option specifies that the software interrupts vector table will be
589
+ placed inside SRAM instead of the flash.
590
+
584
591
config IRQ_OFFLOAD_NESTED
585
592
bool "irq_offload() supports nested IRQs"
586
593
depends on IRQ_OFFLOAD
Original file line number Diff line number Diff line change @@ -37,7 +37,7 @@ zephyr_linker_sources(ROM_START SORT_KEY 0x1vectors cortex_m/vector_table_pad.ld
37
37
endif ()
38
38
39
39
if (CONFIG_GEN_SW_ISR_TABLE )
40
- if (CONFIG_DYNAMIC_INTERRUPTS )
40
+ if (CONFIG_SRAM_SW_ISR_TABLE )
41
41
zephyr_linker_sources (RWDATA swi_tables.ld )
42
42
else ()
43
43
zephyr_linker_sources (RODATA swi_tables.ld )
Original file line number Diff line number Diff line change @@ -60,7 +60,7 @@ endif()
60
60
add_subdirectory_ifdef (CONFIG_XEN xen )
61
61
62
62
if (CONFIG_GEN_SW_ISR_TABLE )
63
- if (CONFIG_DYNAMIC_INTERRUPTS )
63
+ if (CONFIG_SRAM_SW_ISR_TABLE )
64
64
zephyr_linker_sources (RWDATA swi_tables.ld )
65
65
else ()
66
66
zephyr_linker_sources (RODATA swi_tables.ld )
Original file line number Diff line number Diff line change 2
2
# The contents of this file is based on include/zephyr/linker/common-ram.ld
3
3
# Please keep in sync
4
4
5
- if (CONFIG_GEN_SW_ISR_TABLE AND CONFIG_DYNAMIC_INTERRUPTS )
5
+ if (CONFIG_GEN_SW_ISR_TABLE AND CONFIG_SRAM_SW_ISR_TABLE )
6
6
# ld align has been changed to subalign to provide identical behavior scatter vs. ld.
7
7
zephyr_linker_section (NAME sw_isr_table
8
8
GROUP DATA_REGION
Original file line number Diff line number Diff line change @@ -13,7 +13,7 @@ zephyr_linker_section_obj_level(SECTION init LEVEL SMP)
13
13
14
14
zephyr_iterable_section (NAME device NUMERIC KVMA RAM_REGION GROUP RODATA_REGION SUBALIGN ${CONFIG_LINKER_ITERABLE_SUBALIGN} )
15
15
16
- if (CONFIG_GEN_SW_ISR_TABLE AND NOT CONFIG_DYNAMIC_INTERRUPTS )
16
+ if (CONFIG_GEN_SW_ISR_TABLE AND NOT CONFIG_SRAM_SW_ISR_TABLE )
17
17
# ld align has been changed to subalign to provide identical behavior scatter vs. ld.
18
18
zephyr_linker_section (NAME sw_isr_table KVMA FLASH GROUP RODATA_REGION SUBALIGN ${CONFIG_ARCH_SW_ISR_TABLE_ALIGN} NOINPUT )
19
19
zephyr_linker_section_configure (
Original file line number Diff line number Diff line change 17
17
ITERABLE_SECTION_RAM(scmi_protocol, Z_LINK_ITERABLE_SUBALIGN)
18
18
#endif /* CONFIG_ARM_SCMI */
19
19
20
- #if defined(CONFIG_GEN_SW_ISR_TABLE) && defined(CONFIG_DYNAMIC_INTERRUPTS )
20
+ #if defined(CONFIG_GEN_SW_ISR_TABLE) && defined(CONFIG_SRAM_SW_ISR_TABLE )
21
21
SECTION_DATA_PROLOGUE(sw_isr_table,,)
22
22
{
23
23
/*
Original file line number Diff line number Diff line change 42
42
} GROUP_ROM_LINK_IN(RAMABLE_REGION, ROMABLE_REGION)
43
43
#endif
44
44
45
- #if defined(CONFIG_GEN_SW_ISR_TABLE) && !defined(CONFIG_DYNAMIC_INTERRUPTS )
45
+ #if defined(CONFIG_GEN_SW_ISR_TABLE) && !defined(CONFIG_SRAM_SW_ISR_TABLE )
46
46
SECTION_PROLOGUE(sw_isr_table,,)
47
47
{
48
48
/*
You can’t perform that action at this time.
0 commit comments