summaryrefslogtreecommitdiffstats
path: root/bsps/arm/imxrt/start
diff options
context:
space:
mode:
authorChristian Mauderer <christian.mauderer@embedded-brains.de>2021-05-28 16:54:00 +0200
committerChristian Mauderer <christian.mauderer@embedded-brains.de>2021-07-02 13:49:47 +0200
commit0d3453a47e522fbb13b211e44ce4007b666686f3 (patch)
treea954f2d9286bbbb33f639e8305df99d9e9a60603 /bsps/arm/imxrt/start
parentbsps/imxrt: Allow different ARM PLL setting (diff)
downloadrtems-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.c4
-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.flexspi38
-rw-r--r--bsps/arm/imxrt/start/linkcmds.sdram34
-rw-r--r--bsps/arm/imxrt/start/mpu-config.c12
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,