diff options
author | Christian Mauderer <christian.mauderer@embedded-brains.de> | 2021-05-28 16:54:00 +0200 |
---|---|---|
committer | Christian Mauderer <christian.mauderer@embedded-brains.de> | 2021-07-02 13:49:47 +0200 |
commit | 0d3453a47e522fbb13b211e44ce4007b666686f3 (patch) | |
tree | a954f2d9286bbbb33f639e8305df99d9e9a60603 /bsps/arm/imxrt/start | |
parent | bsps/imxrt: Allow different ARM PLL setting (diff) | |
download | rtems-0d3453a47e522fbb13b211e44ce4007b666686f3.tar.bz2 |
bsps/imxrt: Simplify linkcmds and make it flexible
Calling the memory FLASH and EXTRAM instead of FLEXSPI and SDRAM makes
it simpler to support other types of external RAM. This patch also
removes some of the calculations and improves names and documentation to
avoid pitfalls. It removes a unnecessary memory definition.
Update #4180
Diffstat (limited to 'bsps/arm/imxrt/start')
-rw-r--r-- | bsps/arm/imxrt/start/flash-boot-data.c | 4 | ||||
-rw-r--r-- | bsps/arm/imxrt/start/flash-flexspi-config.c (renamed from bsps/arm/imxrt/start/flash-config.c) | 2 | ||||
-rw-r--r-- | bsps/arm/imxrt/start/linkcmds.flexspi | 38 | ||||
-rw-r--r-- | bsps/arm/imxrt/start/linkcmds.sdram | 34 | ||||
-rw-r--r-- | bsps/arm/imxrt/start/mpu-config.c | 12 |
5 files changed, 45 insertions, 45 deletions
diff --git a/bsps/arm/imxrt/start/flash-boot-data.c b/bsps/arm/imxrt/start/flash-boot-data.c index cf0430af72..a1877f4d26 100644 --- a/bsps/arm/imxrt/start/flash-boot-data.c +++ b/bsps/arm/imxrt/start/flash-boot-data.c @@ -30,8 +30,8 @@ #include <bspopts.h> const BOOT_DATA_T imxrt_boot_data = { - .start = (uint32_t) imxrt_memory_flexspi_config_begin, - .size = IMXRT_MEMORY_FLEXSPI_FLASH_SIZE, + .start = (uint32_t) imxrt_memory_flash_config_begin, + .size = IMXRT_MEMORY_FLASH_SIZE, .plugin = PLUGIN_FLAG, .placeholder = 0xFFFFFFFF, }; diff --git a/bsps/arm/imxrt/start/flash-config.c b/bsps/arm/imxrt/start/flash-flexspi-config.c index 07324f1330..50eca19b20 100644 --- a/bsps/arm/imxrt/start/flash-config.c +++ b/bsps/arm/imxrt/start/flash-flexspi-config.c @@ -43,7 +43,7 @@ const flexspi_nor_config_t imxrt_flexspi_config = { .deviceType = kFlexSpiDeviceType_SerialRAM, .sflashPadType = kSerialFlash_8Pads, .serialClkFreq = kFlexSpiSerialClk_133MHz, - .sflashA1Size = IMXRT_MEMORY_FLEXSPI_FLASH_SIZE, + .sflashA1Size = IMXRT_MEMORY_FLASH_SIZE, .dataValidTime = {16u, 16u}, .lookupTable = { FLEXSPI_LUT_SEQ(CMD_DDR, FLEXSPI_8PAD, 0xA0, RADDR_DDR, FLEXSPI_8PAD, 0x18), diff --git a/bsps/arm/imxrt/start/linkcmds.flexspi b/bsps/arm/imxrt/start/linkcmds.flexspi index 4196bb33e5..ceed164894 100644 --- a/bsps/arm/imxrt/start/linkcmds.flexspi +++ b/bsps/arm/imxrt/start/linkcmds.flexspi @@ -1,22 +1,22 @@ INCLUDE linkcmds.memory -REGION_ALIAS ("REGION_START", FLEXSPI); -REGION_ALIAS ("REGION_VECTOR", FLEXSPI); -REGION_ALIAS ("REGION_TEXT", FLEXSPI); -REGION_ALIAS ("REGION_TEXT_LOAD", FLEXSPI); -REGION_ALIAS ("REGION_RODATA", FLEXSPI); -REGION_ALIAS ("REGION_RODATA_LOAD", FLEXSPI); -REGION_ALIAS ("REGION_DATA", SDRAM); -REGION_ALIAS ("REGION_DATA_LOAD", FLEXSPI); -REGION_ALIAS ("REGION_FAST_TEXT", FLEXSPI); -REGION_ALIAS ("REGION_FAST_TEXT_LOAD", FLEXSPI); -REGION_ALIAS ("REGION_FAST_DATA", SDRAM); -REGION_ALIAS ("REGION_FAST_DATA_LOAD", FLEXSPI); -REGION_ALIAS ("REGION_BSS", SDRAM); -REGION_ALIAS ("REGION_WORK", SDRAM); -REGION_ALIAS ("REGION_STACK", SDRAM); -REGION_ALIAS ("REGION_NOCACHE", SDRAM_NOCACHE); -REGION_ALIAS ("REGION_NOCACHE_LOAD", FLEXSPI); +REGION_ALIAS ("REGION_START", FLASH); +REGION_ALIAS ("REGION_VECTOR", FLASH); +REGION_ALIAS ("REGION_TEXT", FLASH); +REGION_ALIAS ("REGION_TEXT_LOAD", FLASH); +REGION_ALIAS ("REGION_RODATA", FLASH); +REGION_ALIAS ("REGION_RODATA_LOAD", FLASH); +REGION_ALIAS ("REGION_DATA", EXTRAM); +REGION_ALIAS ("REGION_DATA_LOAD", FLASH); +REGION_ALIAS ("REGION_FAST_TEXT", FLASH); +REGION_ALIAS ("REGION_FAST_TEXT_LOAD", FLASH); +REGION_ALIAS ("REGION_FAST_DATA", EXTRAM); +REGION_ALIAS ("REGION_FAST_DATA_LOAD", FLASH); +REGION_ALIAS ("REGION_BSS", EXTRAM); +REGION_ALIAS ("REGION_WORK", EXTRAM); +REGION_ALIAS ("REGION_STACK", EXTRAM); +REGION_ALIAS ("REGION_NOCACHE", EXTRAM_NOCACHE); +REGION_ALIAS ("REGION_NOCACHE_LOAD", FLASH); bsp_vector_table_in_start_section = 1; @@ -24,12 +24,12 @@ SECTIONS { . = imxrt_memory_flexspi_begin; .flash_config : ALIGN_WITH_INPUT { KEEP(*(.boot_hdr.conf)) - } > FLEXSPI_CONFIG AT > FLEXSPI_CONFIG + } > FLASH_CONFIG AT > FLASH_CONFIG .flash_ivt : ALIGN_WITH_INPUT { KEEP(*(.boot_hdr.ivt)) KEEP(*(.boot_hdr.boot_data)) KEEP(*(.boot_hdr.dcd_data)) - } > FLEXSPI_IVT AT > FLEXSPI_IVT + } > FLASH_IVT AT > FLASH_IVT } INCLUDE linkcmds.armv7m diff --git a/bsps/arm/imxrt/start/linkcmds.sdram b/bsps/arm/imxrt/start/linkcmds.sdram index 87d1dffa53..b1b90e32d6 100644 --- a/bsps/arm/imxrt/start/linkcmds.sdram +++ b/bsps/arm/imxrt/start/linkcmds.sdram @@ -1,22 +1,22 @@ INCLUDE linkcmds.memory -REGION_ALIAS ("REGION_START", SDRAM); -REGION_ALIAS ("REGION_VECTOR", SDRAM); -REGION_ALIAS ("REGION_TEXT", SDRAM); -REGION_ALIAS ("REGION_TEXT_LOAD", SDRAM); -REGION_ALIAS ("REGION_RODATA", SDRAM); -REGION_ALIAS ("REGION_RODATA_LOAD", SDRAM); -REGION_ALIAS ("REGION_DATA", SDRAM); -REGION_ALIAS ("REGION_DATA_LOAD", SDRAM); -REGION_ALIAS ("REGION_FAST_TEXT", SDRAM); -REGION_ALIAS ("REGION_FAST_TEXT_LOAD", SDRAM); -REGION_ALIAS ("REGION_FAST_DATA", SDRAM); -REGION_ALIAS ("REGION_FAST_DATA_LOAD", SDRAM); -REGION_ALIAS ("REGION_BSS", SDRAM); -REGION_ALIAS ("REGION_WORK", SDRAM); -REGION_ALIAS ("REGION_STACK", SDRAM); -REGION_ALIAS ("REGION_NOCACHE", SDRAM_NOCACHE); -REGION_ALIAS ("REGION_NOCACHE_LOAD", SDRAM); +REGION_ALIAS ("REGION_START", EXTRAM); +REGION_ALIAS ("REGION_VECTOR", EXTRAM); +REGION_ALIAS ("REGION_TEXT", EXTRAM); +REGION_ALIAS ("REGION_TEXT_LOAD", EXTRAM); +REGION_ALIAS ("REGION_RODATA", EXTRAM); +REGION_ALIAS ("REGION_RODATA_LOAD", EXTRAM); +REGION_ALIAS ("REGION_DATA", EXTRAM); +REGION_ALIAS ("REGION_DATA_LOAD", EXTRAM); +REGION_ALIAS ("REGION_FAST_TEXT", EXTRAM); +REGION_ALIAS ("REGION_FAST_TEXT_LOAD", EXTRAM); +REGION_ALIAS ("REGION_FAST_DATA", EXTRAM); +REGION_ALIAS ("REGION_FAST_DATA_LOAD", EXTRAM); +REGION_ALIAS ("REGION_BSS", EXTRAM); +REGION_ALIAS ("REGION_WORK", EXTRAM); +REGION_ALIAS ("REGION_STACK", EXTRAM); +REGION_ALIAS ("REGION_NOCACHE", EXTRAM_NOCACHE); +REGION_ALIAS ("REGION_NOCACHE_LOAD", EXTRAM); bsp_vector_table_in_start_section = 1; diff --git a/bsps/arm/imxrt/start/mpu-config.c b/bsps/arm/imxrt/start/mpu-config.c index 683b26d45b..79800ac431 100644 --- a/bsps/arm/imxrt/start/mpu-config.c +++ b/bsps/arm/imxrt/start/mpu-config.c @@ -32,8 +32,8 @@ BSP_START_DATA_SECTION const ARMV7M_MPU_Region_config imxrt_config_mpu_region [] = { { - .begin = imxrt_memory_sdram_begin, - .end = imxrt_memory_sdram_end, + .begin = imxrt_memory_extram_begin, + .end = imxrt_memory_extram_end, .rasr = ARMV7M_MPU_RASR_AP(0x3) | ARMV7M_MPU_RASR_TEX(0x1) | ARMV7M_MPU_RASR_C | ARMV7M_MPU_RASR_B | ARMV7M_MPU_RASR_ENABLE, @@ -44,14 +44,14 @@ BSP_START_DATA_SECTION const ARMV7M_MPU_Region_config | ARMV7M_MPU_RASR_TEX(0x1) | ARMV7M_MPU_RASR_C | ARMV7M_MPU_RASR_B | ARMV7M_MPU_RASR_ENABLE, }, { - .begin = imxrt_memory_flexspi_config_begin, - .end = imxrt_memory_flexspi_end, + .begin = imxrt_memory_flash_config_begin, + .end = imxrt_memory_flash_end, .rasr = ARMV7M_MPU_RASR_AP(0x3) | ARMV7M_MPU_RASR_TEX(0x1) | ARMV7M_MPU_RASR_C | ARMV7M_MPU_RASR_B | ARMV7M_MPU_RASR_ENABLE, }, { - .begin = imxrt_memory_sdram_nocache_begin, - .end = imxrt_memory_sdram_nocache_end, + .begin = imxrt_memory_extram_nocache_begin, + .end = imxrt_memory_extram_nocache_end, .rasr = ARMV7M_MPU_RASR_AP(0x3) | ARMV7M_MPU_RASR_TEX(0x2) | ARMV7M_MPU_RASR_ENABLE, |