Skip to content

Commit 450b9fa

Browse files
tejlmandnashif
authored andcommitted
cmake: linker: arm: memory regions from devicetree added
This commit add devicetree memory regions added to arm/linker.cmake. The following memory regions are now added to the generated linker script and scatter file if they exists in the devicetree. - chosen: zephyr,itcm - chosen: zephyr,dtcm - nodelabel: ti_ccfg_partition - nodelabel: sram1 - nodelabel: sram2 - nodelabel: sram3 - nodelabel: sram4 - nodelabel: sdram1 - nodelabel: sdram2 - nodelabel: backup_sram Also support for the itcm and dtcm section and their placement in corresponding memory regions has been added. Signed-off-by: Torsten Rasmussen <[email protected]>
1 parent c2842c3 commit 450b9fa

File tree

1 file changed

+37
-0
lines changed

1 file changed

+37
-0
lines changed

cmake/linker_script/arm/linker.cmake

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,21 @@ zephyr_linker_memory(NAME FLASH FLAGS rx START ${FLASH_ADDR} SIZE ${FLASH_SIZ
3434
zephyr_linker_memory(NAME RAM FLAGS wx START ${RAM_ADDR} SIZE ${RAM_SIZE})
3535
zephyr_linker_memory(NAME IDT_LIST FLAGS wx START ${IDT_ADDR} SIZE 2K)
3636

37+
# TI CCFG Registers
38+
zephyr_linker_dts_memory(NAME FLASH_CCFG FLAGS rwx NODELABEL ti_ccfg_partition)
39+
40+
# Data & Instruction Tightly Coupled Memory
41+
zephyr_linker_dts_memory(NAME ITCM FLAGS rw CHOSEN "zephyr,itcm")
42+
zephyr_linker_dts_memory(NAME DTCM FLAGS rw CHOSEN "zephyr,dtcm")
43+
44+
zephyr_linker_dts_memory(NAME SRAM1 FLAGS rw NODELABEL sram1)
45+
zephyr_linker_dts_memory(NAME SRAM2 FLAGS rw NODELABEL sram2)
46+
zephyr_linker_dts_memory(NAME SRAM3 FLAGS rw NODELABEL sram3)
47+
zephyr_linker_dts_memory(NAME SRAM4 FLAGS rw NODELABEL sram4)
48+
zephyr_linker_dts_memory(NAME SDRAM1 FLAGS rw NODELABEL sdram1)
49+
zephyr_linker_dts_memory(NAME SDRAM2 FLAGS rw NODELABEL sdram2)
50+
zephyr_linker_dts_memory(NAME BACKUP_SRAM FLAGS rw NODELABEL backup_sram)
51+
3752
if(CONFIG_XIP)
3853
zephyr_linker_group(NAME ROM_REGION LMA FLASH)
3954
set(rom_start ${FLASH_ADDR})
@@ -157,6 +172,28 @@ zephyr_linker_section_configure(
157172
PRIO 50
158173
)
159174

175+
dt_chosen(chosen_itcm PROPERTY "zephyr,itcm")
176+
if(DEFINED chosen_itcm)
177+
dt_node_has_status(status_result PATH ${chosen_itcm} STATUS okay)
178+
if(${status_result})
179+
zephyr_linker_group(NAME ITCM_REGION VMA ITCM LMA ROM_REGION)
180+
181+
zephyr_linker_section(NAME .itcm GROUP ITCM_REGION SUBALIGN 4)
182+
endif()
183+
endif()
184+
185+
dt_chosen(chosen_dtcm PROPERTY "zephyr,dtcm")
186+
if(DEFINED chosen_dtcm)
187+
dt_node_has_status(status_result PATH ${chosen_dtcm} STATUS okay)
188+
if(${status_result})
189+
zephyr_linker_group(NAME DTCM_REGION VMA DTCM LMA ROM_REGION)
190+
191+
zephyr_linker_section(NAME .dtcm_bss GROUP DTCM_REGION SUBALIGN 4 TYPE BSS)
192+
zephyr_linker_section(NAME .dtcm_noinit GROUP DTCM_REGION SUBALIGN 4 TYPE NOLOAD NOINIT)
193+
zephyr_linker_section(NAME .dtcm_data GROUP DTCM_REGION SUBALIGN 4)
194+
endif()
195+
endif()
196+
160197
zephyr_linker_section(NAME .ARM.attributes ADDRESS 0 NOINPUT)
161198
zephyr_linker_section_configure(SECTION .ARM.attributes INPUT ".ARM.attributes" KEEP)
162199
zephyr_linker_section_configure(SECTION .ARM.attributes INPUT ".gnu.attributes" KEEP)

0 commit comments

Comments
 (0)