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
This commit is contained in:
Christian Mauderer
2021-05-28 16:54:00 +02:00
parent 95a38dd3f1
commit 0d3453a47e
18 changed files with 156 additions and 131 deletions

View File

@@ -56,29 +56,25 @@ extern char imxrt_memory_peripheral_begin[];
extern char imxrt_memory_peripheral_end[]; extern char imxrt_memory_peripheral_end[];
extern char imxrt_memory_peripheral_size[]; extern char imxrt_memory_peripheral_size[];
extern char imxrt_memory_flexspi_config_begin[]; extern char imxrt_memory_flash_config_begin[];
extern char imxrt_memory_flexspi_config_end[]; extern char imxrt_memory_flash_config_end[];
extern char imxrt_memory_flexspi_config_size[]; extern char imxrt_memory_flash_config_size[];
extern char imxrt_memory_flexspi_ivt_begin[]; extern char imxrt_memory_flash_ivt_begin[];
extern char imxrt_memory_flexspi_ivt_end[]; extern char imxrt_memory_flash_ivt_end[];
extern char imxrt_memory_flexspi_ivt_size[]; extern char imxrt_memory_flash_ivt_size[];
extern char imxrt_memory_flexspi_begin[]; extern char imxrt_memory_flash_begin[];
extern char imxrt_memory_flexspi_end[]; extern char imxrt_memory_flash_end[];
extern char imxrt_memory_flexspi_size[]; extern char imxrt_memory_flash_size[];
extern char imxrt_memory_flexspi_fifo_begin[]; extern char imxrt_memory_extram_begin[];
extern char imxrt_memory_flexspi_fifo_end[]; extern char imxrt_memory_extram_end[];
extern char imxrt_memory_flexspi_fifo_size[]; extern char imxrt_memory_extram_size[];
extern char imxrt_memory_sdram_begin[]; extern char imxrt_memory_extram_nocache_begin[];
extern char imxrt_memory_sdram_end[]; extern char imxrt_memory_extram_nocache_end[];
extern char imxrt_memory_sdram_size[]; extern char imxrt_memory_extram_nocache_size[];
extern char imxrt_memory_sdram_nocache_begin[];
extern char imxrt_memory_sdram_nocache_end[];
extern char imxrt_memory_sdram_nocache_size[];
#ifdef __cplusplus #ifdef __cplusplus
} }

View File

@@ -30,8 +30,8 @@
#include <bspopts.h> #include <bspopts.h>
const BOOT_DATA_T imxrt_boot_data = { const BOOT_DATA_T imxrt_boot_data = {
.start = (uint32_t) imxrt_memory_flexspi_config_begin, .start = (uint32_t) imxrt_memory_flash_config_begin,
.size = IMXRT_MEMORY_FLEXSPI_FLASH_SIZE, .size = IMXRT_MEMORY_FLASH_SIZE,
.plugin = PLUGIN_FLAG, .plugin = PLUGIN_FLAG,
.placeholder = 0xFFFFFFFF, .placeholder = 0xFFFFFFFF,
}; };

View File

@@ -43,7 +43,7 @@ const flexspi_nor_config_t imxrt_flexspi_config = {
.deviceType = kFlexSpiDeviceType_SerialRAM, .deviceType = kFlexSpiDeviceType_SerialRAM,
.sflashPadType = kSerialFlash_8Pads, .sflashPadType = kSerialFlash_8Pads,
.serialClkFreq = kFlexSpiSerialClk_133MHz, .serialClkFreq = kFlexSpiSerialClk_133MHz,
.sflashA1Size = IMXRT_MEMORY_FLEXSPI_FLASH_SIZE, .sflashA1Size = IMXRT_MEMORY_FLASH_SIZE,
.dataValidTime = {16u, 16u}, .dataValidTime = {16u, 16u},
.lookupTable = { .lookupTable = {
FLEXSPI_LUT_SEQ(CMD_DDR, FLEXSPI_8PAD, 0xA0, RADDR_DDR, FLEXSPI_8PAD, 0x18), FLEXSPI_LUT_SEQ(CMD_DDR, FLEXSPI_8PAD, 0xA0, RADDR_DDR, FLEXSPI_8PAD, 0x18),

View File

@@ -1,22 +1,22 @@
INCLUDE linkcmds.memory INCLUDE linkcmds.memory
REGION_ALIAS ("REGION_START", FLEXSPI); REGION_ALIAS ("REGION_START", FLASH);
REGION_ALIAS ("REGION_VECTOR", FLEXSPI); REGION_ALIAS ("REGION_VECTOR", FLASH);
REGION_ALIAS ("REGION_TEXT", FLEXSPI); REGION_ALIAS ("REGION_TEXT", FLASH);
REGION_ALIAS ("REGION_TEXT_LOAD", FLEXSPI); REGION_ALIAS ("REGION_TEXT_LOAD", FLASH);
REGION_ALIAS ("REGION_RODATA", FLEXSPI); REGION_ALIAS ("REGION_RODATA", FLASH);
REGION_ALIAS ("REGION_RODATA_LOAD", FLEXSPI); REGION_ALIAS ("REGION_RODATA_LOAD", FLASH);
REGION_ALIAS ("REGION_DATA", SDRAM); REGION_ALIAS ("REGION_DATA", EXTRAM);
REGION_ALIAS ("REGION_DATA_LOAD", FLEXSPI); REGION_ALIAS ("REGION_DATA_LOAD", FLASH);
REGION_ALIAS ("REGION_FAST_TEXT", FLEXSPI); REGION_ALIAS ("REGION_FAST_TEXT", FLASH);
REGION_ALIAS ("REGION_FAST_TEXT_LOAD", FLEXSPI); REGION_ALIAS ("REGION_FAST_TEXT_LOAD", FLASH);
REGION_ALIAS ("REGION_FAST_DATA", SDRAM); REGION_ALIAS ("REGION_FAST_DATA", EXTRAM);
REGION_ALIAS ("REGION_FAST_DATA_LOAD", FLEXSPI); REGION_ALIAS ("REGION_FAST_DATA_LOAD", FLASH);
REGION_ALIAS ("REGION_BSS", SDRAM); REGION_ALIAS ("REGION_BSS", EXTRAM);
REGION_ALIAS ("REGION_WORK", SDRAM); REGION_ALIAS ("REGION_WORK", EXTRAM);
REGION_ALIAS ("REGION_STACK", SDRAM); REGION_ALIAS ("REGION_STACK", EXTRAM);
REGION_ALIAS ("REGION_NOCACHE", SDRAM_NOCACHE); REGION_ALIAS ("REGION_NOCACHE", EXTRAM_NOCACHE);
REGION_ALIAS ("REGION_NOCACHE_LOAD", FLEXSPI); REGION_ALIAS ("REGION_NOCACHE_LOAD", FLASH);
bsp_vector_table_in_start_section = 1; bsp_vector_table_in_start_section = 1;
@@ -24,12 +24,12 @@ SECTIONS {
. = imxrt_memory_flexspi_begin; . = imxrt_memory_flexspi_begin;
.flash_config : ALIGN_WITH_INPUT { .flash_config : ALIGN_WITH_INPUT {
KEEP(*(.boot_hdr.conf)) KEEP(*(.boot_hdr.conf))
} > FLEXSPI_CONFIG AT > FLEXSPI_CONFIG } > FLASH_CONFIG AT > FLASH_CONFIG
.flash_ivt : ALIGN_WITH_INPUT { .flash_ivt : ALIGN_WITH_INPUT {
KEEP(*(.boot_hdr.ivt)) KEEP(*(.boot_hdr.ivt))
KEEP(*(.boot_hdr.boot_data)) KEEP(*(.boot_hdr.boot_data))
KEEP(*(.boot_hdr.dcd_data)) KEEP(*(.boot_hdr.dcd_data))
} > FLEXSPI_IVT AT > FLEXSPI_IVT } > FLASH_IVT AT > FLASH_IVT
} }
INCLUDE linkcmds.armv7m INCLUDE linkcmds.armv7m

View File

@@ -1,22 +1,22 @@
INCLUDE linkcmds.memory INCLUDE linkcmds.memory
REGION_ALIAS ("REGION_START", SDRAM); REGION_ALIAS ("REGION_START", EXTRAM);
REGION_ALIAS ("REGION_VECTOR", SDRAM); REGION_ALIAS ("REGION_VECTOR", EXTRAM);
REGION_ALIAS ("REGION_TEXT", SDRAM); REGION_ALIAS ("REGION_TEXT", EXTRAM);
REGION_ALIAS ("REGION_TEXT_LOAD", SDRAM); REGION_ALIAS ("REGION_TEXT_LOAD", EXTRAM);
REGION_ALIAS ("REGION_RODATA", SDRAM); REGION_ALIAS ("REGION_RODATA", EXTRAM);
REGION_ALIAS ("REGION_RODATA_LOAD", SDRAM); REGION_ALIAS ("REGION_RODATA_LOAD", EXTRAM);
REGION_ALIAS ("REGION_DATA", SDRAM); REGION_ALIAS ("REGION_DATA", EXTRAM);
REGION_ALIAS ("REGION_DATA_LOAD", SDRAM); REGION_ALIAS ("REGION_DATA_LOAD", EXTRAM);
REGION_ALIAS ("REGION_FAST_TEXT", SDRAM); REGION_ALIAS ("REGION_FAST_TEXT", EXTRAM);
REGION_ALIAS ("REGION_FAST_TEXT_LOAD", SDRAM); REGION_ALIAS ("REGION_FAST_TEXT_LOAD", EXTRAM);
REGION_ALIAS ("REGION_FAST_DATA", SDRAM); REGION_ALIAS ("REGION_FAST_DATA", EXTRAM);
REGION_ALIAS ("REGION_FAST_DATA_LOAD", SDRAM); REGION_ALIAS ("REGION_FAST_DATA_LOAD", EXTRAM);
REGION_ALIAS ("REGION_BSS", SDRAM); REGION_ALIAS ("REGION_BSS", EXTRAM);
REGION_ALIAS ("REGION_WORK", SDRAM); REGION_ALIAS ("REGION_WORK", EXTRAM);
REGION_ALIAS ("REGION_STACK", SDRAM); REGION_ALIAS ("REGION_STACK", EXTRAM);
REGION_ALIAS ("REGION_NOCACHE", SDRAM_NOCACHE); REGION_ALIAS ("REGION_NOCACHE", EXTRAM_NOCACHE);
REGION_ALIAS ("REGION_NOCACHE_LOAD", SDRAM); REGION_ALIAS ("REGION_NOCACHE_LOAD", EXTRAM);
bsp_vector_table_in_start_section = 1; bsp_vector_table_in_start_section = 1;

View File

@@ -32,8 +32,8 @@
BSP_START_DATA_SECTION const ARMV7M_MPU_Region_config BSP_START_DATA_SECTION const ARMV7M_MPU_Region_config
imxrt_config_mpu_region [] = { imxrt_config_mpu_region [] = {
{ {
.begin = imxrt_memory_sdram_begin, .begin = imxrt_memory_extram_begin,
.end = imxrt_memory_sdram_end, .end = imxrt_memory_extram_end,
.rasr = ARMV7M_MPU_RASR_AP(0x3) .rasr = ARMV7M_MPU_RASR_AP(0x3)
| ARMV7M_MPU_RASR_TEX(0x1) | ARMV7M_MPU_RASR_C | ARMV7M_MPU_RASR_B | ARMV7M_MPU_RASR_TEX(0x1) | ARMV7M_MPU_RASR_C | ARMV7M_MPU_RASR_B
| ARMV7M_MPU_RASR_ENABLE, | 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_TEX(0x1) | ARMV7M_MPU_RASR_C | ARMV7M_MPU_RASR_B
| ARMV7M_MPU_RASR_ENABLE, | ARMV7M_MPU_RASR_ENABLE,
}, { }, {
.begin = imxrt_memory_flexspi_config_begin, .begin = imxrt_memory_flash_config_begin,
.end = imxrt_memory_flexspi_end, .end = imxrt_memory_flash_end,
.rasr = ARMV7M_MPU_RASR_AP(0x3) .rasr = ARMV7M_MPU_RASR_AP(0x3)
| ARMV7M_MPU_RASR_TEX(0x1) | ARMV7M_MPU_RASR_C | ARMV7M_MPU_RASR_B | ARMV7M_MPU_RASR_TEX(0x1) | ARMV7M_MPU_RASR_C | ARMV7M_MPU_RASR_B
| ARMV7M_MPU_RASR_ENABLE, | ARMV7M_MPU_RASR_ENABLE,
}, { }, {
.begin = imxrt_memory_sdram_nocache_begin, .begin = imxrt_memory_extram_nocache_begin,
.end = imxrt_memory_sdram_nocache_end, .end = imxrt_memory_extram_nocache_end,
.rasr = ARMV7M_MPU_RASR_AP(0x3) .rasr = ARMV7M_MPU_RASR_AP(0x3)
| ARMV7M_MPU_RASR_TEX(0x2) | ARMV7M_MPU_RASR_TEX(0x2)
| ARMV7M_MPU_RASR_ENABLE, | ARMV7M_MPU_RASR_ENABLE,

View File

@@ -126,26 +126,28 @@ links:
uid: optlinkcmds uid: optlinkcmds
- role: build-dependency - role: build-dependency
uid: optmemdtcmsz uid: optmemdtcmsz
- role: build-dependency
uid: optmemextramnocachesz
- role: build-dependency
uid: optmemextramorigin
- role: build-dependency
uid: optmemextramsz
- role: build-dependency - role: build-dependency
uid: optmemflashcfgsz uid: optmemflashcfgsz
- role: build-dependency - role: build-dependency
uid: optmemflashivtsz uid: optmemflashivtsz
- role: build-dependency - role: build-dependency
uid: optmemflexspisz uid: optmemflashorigin
- role: build-dependency
uid: optmemflashsz
- role: build-dependency - role: build-dependency
uid: optmemitcmsz uid: optmemitcmsz
- role: build-dependency - role: build-dependency
uid: optmemnullsz uid: optmemnullsz
- role: build-dependency
uid: optmemocramsz
- role: build-dependency - role: build-dependency
uid: optmemocramnocachesz uid: optmemocramnocachesz
- role: build-dependency - role: build-dependency
uid: optmemsdrambase uid: optmemocramsz
- role: build-dependency
uid: optmemsdramsz
- role: build-dependency
uid: optmemsdramnocachesz
- role: build-dependency - role: build-dependency
uid: ../start uid: ../start
- role: build-dependency - role: build-dependency
@@ -240,8 +242,8 @@ source:
- bsps/arm/imxrt/start/bspstarthooks.c - bsps/arm/imxrt/start/bspstarthooks.c
- bsps/arm/imxrt/start/clock-arm-pll-config.c - bsps/arm/imxrt/start/clock-arm-pll-config.c
- bsps/arm/imxrt/start/flash-boot-data.c - bsps/arm/imxrt/start/flash-boot-data.c
- bsps/arm/imxrt/start/flash-config.c
- bsps/arm/imxrt/start/flash-dcd.c - bsps/arm/imxrt/start/flash-dcd.c
- bsps/arm/imxrt/start/flash-flexspi-config.c
- bsps/arm/imxrt/start/flash-ivt.c - bsps/arm/imxrt/start/flash-ivt.c
- bsps/arm/imxrt/start/imxrt-ffec-init.c - bsps/arm/imxrt/start/imxrt-ffec-init.c
- bsps/arm/imxrt/start/mpu-config.c - bsps/arm/imxrt/start/mpu-config.c

View File

@@ -2,17 +2,16 @@ build-type: config-file
content: | content: |
MEMORY { MEMORY {
NULL : ORIGIN = 0x00000000, LENGTH = ${IMXRT_MEMORY_NULL_SIZE:#010x} NULL : ORIGIN = 0x00000000, LENGTH = ${IMXRT_MEMORY_NULL_SIZE:#010x}
ITCM : ORIGIN = ${IMXRT_MEMORY_NULL_SIZE:#010x}, LENGTH = ${IMXRT_MEMORY_ITCM_SIZE:#010x} - ${IMXRT_MEMORY_NULL_SIZE:#010x} ITCM : ORIGIN = ${IMXRT_MEMORY_NULL_SIZE:#010x}, LENGTH = ${IMXRT_MEMORY_ITCM_SIZE:#010x}
DTCM : ORIGIN = 0x20000000, LENGTH = ${IMXRT_MEMORY_DTCM_SIZE:#010x} DTCM : ORIGIN = 0x20000000, LENGTH = ${IMXRT_MEMORY_DTCM_SIZE:#010x}
OCRAM : ORIGIN = 0x20200000, LENGTH = ${IMXRT_MEMORY_OCRAM_SIZE:#010x} - ${IMXRT_MEMORY_OCRAM_NOCACHE_SIZE:#010x} OCRAM : ORIGIN = 0x20200000, LENGTH = ${IMXRT_MEMORY_OCRAM_SIZE:#010x} - ${IMXRT_MEMORY_OCRAM_NOCACHE_SIZE:#010x}
OCRAM_NOCACHE : ORIGIN = 0x20200000 + ${IMXRT_MEMORY_OCRAM_SIZE:#010x} - ${IMXRT_MEMORY_OCRAM_NOCACHE_SIZE:#010x}, LENGTH = ${IMXRT_MEMORY_OCRAM_NOCACHE_SIZE:#010x} OCRAM_NOCACHE : ORIGIN = 0x20200000 + ${IMXRT_MEMORY_OCRAM_SIZE:#010x} - ${IMXRT_MEMORY_OCRAM_NOCACHE_SIZE:#010x}, LENGTH = ${IMXRT_MEMORY_OCRAM_NOCACHE_SIZE:#010x}
PERIPHERAL : ORIGIN = 0x40000000, LENGTH = 0x20000000 PERIPHERAL : ORIGIN = 0x40000000, LENGTH = 0x20000000
FLEXSPI_CONFIG : ORIGIN = 0x60000000, LENGTH = ${IMXRT_MEMORY_FLASH_CFG_SIZE:#010x} FLASH_CONFIG : ORIGIN = ${IMXRT_MEMORY_FLASH_ORIGIN:#010x}, LENGTH = ${IMXRT_MEMORY_FLASH_CFG_SIZE:#010x}
FLEXSPI_IVT : ORIGIN = 0x60000000 + ${IMXRT_MEMORY_FLASH_CFG_SIZE:#010x}, LENGTH = ${IMXRT_MEMORY_FLASH_IVT_SIZE:#010x} FLASH_IVT : ORIGIN = ${IMXRT_MEMORY_FLASH_ORIGIN:#010x} + ${IMXRT_MEMORY_FLASH_CFG_SIZE:#010x}, LENGTH = ${IMXRT_MEMORY_FLASH_IVT_SIZE:#010x}
FLEXSPI : ORIGIN = 0x60000000 + ${IMXRT_MEMORY_FLASH_CFG_SIZE:#010x} + ${IMXRT_MEMORY_FLASH_IVT_SIZE:#010x}, LENGTH = ${IMXRT_MEMORY_FLEXSPI_FLASH_SIZE:#010x} - ${IMXRT_MEMORY_FLASH_CFG_SIZE:#010x} - ${IMXRT_MEMORY_FLASH_IVT_SIZE:#010x} FLASH : ORIGIN = ${IMXRT_MEMORY_FLASH_ORIGIN:#010x} + ${IMXRT_MEMORY_FLASH_CFG_SIZE:#010x} + ${IMXRT_MEMORY_FLASH_IVT_SIZE:#010x}, LENGTH = ${IMXRT_MEMORY_FLASH_SIZE:#010x} - ${IMXRT_MEMORY_FLASH_CFG_SIZE:#010x} - ${IMXRT_MEMORY_FLASH_IVT_SIZE:#010x}
FLEXSPI_FIFO : ORIGIN = 0x7F800000, LENGTH = 8M EXTRAM : ORIGIN = ${IMXRT_MEMORY_EXTRAM_ORIGIN:#010x}, LENGTH = ${IMXRT_MEMORY_EXTRAM_SIZE:#010x} - ${IMXRT_MEMORY_EXTRAM_NOCACHE_SIZE:#010x}
SDRAM : ORIGIN = ${IMXRT_MEMORY_SDRAM_BASE:#010x}, LENGTH = ${IMXRT_MEMORY_SDRAM_SIZE:#010x} - ${IMXRT_MEMORY_SDRAM_NOCACHE_SIZE:#010x} EXTRAM_NOCACHE : ORIGIN = ${IMXRT_MEMORY_EXTRAM_ORIGIN:#010x} + ${IMXRT_MEMORY_EXTRAM_SIZE:#010x} - ${IMXRT_MEMORY_EXTRAM_NOCACHE_SIZE:#010x}, LENGTH = ${IMXRT_MEMORY_EXTRAM_NOCACHE_SIZE:#010x}
SDRAM_NOCACHE : ORIGIN = ${IMXRT_MEMORY_SDRAM_BASE:#010x} + ${IMXRT_MEMORY_SDRAM_SIZE:#010x} - ${IMXRT_MEMORY_SDRAM_NOCACHE_SIZE:#010x}, LENGTH = ${IMXRT_MEMORY_SDRAM_NOCACHE_SIZE:#010x}
} }
imxrt_memory_null_begin = ORIGIN (NULL); imxrt_memory_null_begin = ORIGIN (NULL);
@@ -39,29 +38,25 @@ content: |
imxrt_memory_peripheral_end = ORIGIN (PERIPHERAL) + LENGTH (PERIPHERAL); imxrt_memory_peripheral_end = ORIGIN (PERIPHERAL) + LENGTH (PERIPHERAL);
imxrt_memory_peripheral_size = LENGTH (PERIPHERAL); imxrt_memory_peripheral_size = LENGTH (PERIPHERAL);
imxrt_memory_flexspi_config_begin = ORIGIN (FLEXSPI_CONFIG); imxrt_memory_flash_config_begin = ORIGIN (FLASH_CONFIG);
imxrt_memory_flexspi_config_end = ORIGIN (FLEXSPI_CONFIG) + LENGTH (FLEXSPI_CONFIG); imxrt_memory_flash_config_end = ORIGIN (FLASH_CONFIG) + LENGTH (FLASH_CONFIG);
imxrt_memory_flexspi_config_size = LENGTH (FLEXSPI_CONFIG); imxrt_memory_flash_config_size = LENGTH (FLASH_CONFIG);
imxrt_memory_flexspi_ivt_begin = ORIGIN (FLEXSPI_IVT); imxrt_memory_flash_ivt_begin = ORIGIN (FLASH_IVT);
imxrt_memory_flexspi_ivt_end = ORIGIN (FLEXSPI_IVT) + LENGTH (FLEXSPI_IVT); imxrt_memory_flash_ivt_end = ORIGIN (FLASH_IVT) + LENGTH (FLASH_IVT);
imxrt_memory_flexspi_ivt_size = LENGTH (FLEXSPI_IVT); imxrt_memory_flash_ivt_size = LENGTH (FLASH_IVT);
imxrt_memory_flexspi_begin = ORIGIN (FLEXSPI); imxrt_memory_flash_begin = ORIGIN (FLASH);
imxrt_memory_flexspi_end = ORIGIN (FLEXSPI) + LENGTH (FLEXSPI); imxrt_memory_flash_end = ORIGIN (FLASH) + LENGTH (FLASH);
imxrt_memory_flexspi_size = LENGTH (FLEXSPI); imxrt_memory_flash_size = LENGTH (FLASH);
imxrt_memory_flexspi_fifo_begin = ORIGIN (FLEXSPI_FIFO); imxrt_memory_extram_begin = ORIGIN (EXTRAM);
imxrt_memory_flexspi_fifo_end = ORIGIN (FLEXSPI_FIFO) + LENGTH (FLEXSPI_FIFO); imxrt_memory_extram_end = ORIGIN (EXTRAM) + LENGTH (EXTRAM);
imxrt_memory_flexspi_fifo_size = LENGTH (FLEXSPI_FIFO); imxrt_memory_extram_size = LENGTH (EXTRAM);
imxrt_memory_sdram_begin = ORIGIN (SDRAM); imxrt_memory_extram_nocache_begin = ORIGIN (EXTRAM_NOCACHE);
imxrt_memory_sdram_end = ORIGIN (SDRAM) + LENGTH (SDRAM); imxrt_memory_extram_nocache_end = ORIGIN (EXTRAM_NOCACHE) + LENGTH (EXTRAM_NOCACHE);
imxrt_memory_sdram_size = LENGTH (SDRAM); imxrt_memory_extram_nocache_size = LENGTH (EXTRAM_NOCACHE);
imxrt_memory_sdram_nocache_begin = ORIGIN (SDRAM_NOCACHE);
imxrt_memory_sdram_nocache_end = ORIGIN (SDRAM_NOCACHE) + LENGTH (SDRAM_NOCACHE);
imxrt_memory_sdram_nocache_size = LENGTH (SDRAM_NOCACHE);
enabled-by: true enabled-by: true
install-path: ${BSP_LIBDIR} install-path: ${BSP_LIBDIR}
links: [] links: []

View File

@@ -7,9 +7,10 @@ default-by-variant: []
enabled-by: true enabled-by: true
format: '{:#010x}' format: '{:#010x}'
links: [] links: []
name: IMXRT_MEMORY_SDRAM_NOCACHE_SIZE name: IMXRT_MEMORY_EXTRAM_NOCACHE_SIZE
description: | description: |
Size of the nocache area at the end of the SDRAM in bytes. Size of the nocache area at the end of the external RAM in bytes. Must not be
bigger than IMXRT_MEMORY_EXTRAM_SIZE.
type: build type: build
SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
copyrights: copyrights:

View File

@@ -7,9 +7,10 @@ default-by-variant: []
enabled-by: true enabled-by: true
format: '{:#010x}' format: '{:#010x}'
links: [] links: []
name: IMXRT_MEMORY_SDRAM_BASE name: IMXRT_MEMORY_EXTRAM_ORIGIN
description: | description: |
Base address of the SDRAM. Base address of the external RAM. An external ram can be for example be a
SDRAM connected to SEMC or a HyperRAM connected to FlexSPI.
type: build type: build
SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
copyrights: copyrights:

View File

@@ -0,0 +1,19 @@
actions:
- get-integer: null
- env-assign: null
build-type: option
default: 0x2000000
default-by-variant: []
enabled-by: true
format: '{:#010x}'
links: []
name: IMXRT_MEMORY_EXTRAM_SIZE
description: |
Size of the external RAM in bytes. An external ram can be for example be a
SDRAM connected to SEMC or a HyperRAM connected to FlexSPI. The size has to
be at least big enough to hold the non cached section with size
IMXRT_MEMORY_EXTRAM_NOCACHE_SIZE at the end of the RAM.
type: build
SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
copyrights:
- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)

View File

@@ -1,15 +1,18 @@
actions: actions:
- get-integer: null - get-integer: null
- env-assign: null - env-assign: null
- define-unquoted: IMXRT_MEMORY_FLASH_ORIGIN
build-type: option build-type: option
default: 33554432 default: 0x60000000
default-by-variant: [] default-by-variant: []
enabled-by: true enabled-by: true
format: '{:#010x}' format: '{:#010x}'
links: [] links: []
name: IMXRT_MEMORY_SDRAM_SIZE name: IMXRT_MEMORY_FLASH_ORIGIN
description: | description: |
Size of the SDRAM in bytes. Origin of the external flash memory. That can be for example a flash
connected to FlexSPI or to SEMC. The default value is for a HyperFlash
connected to FlexSPI.
type: build type: build
SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
copyrights: copyrights:

View File

@@ -0,0 +1,20 @@
actions:
- get-integer: null
- env-assign: null
- define-unquoted: IMXRT_MEMORY_FLASH_SIZE
build-type: option
default: 0x4000000
default-by-variant: []
enabled-by: true
format: '{:#010x}'
links: []
name: IMXRT_MEMORY_FLASH_SIZE
description: |
Size of the external flash area in bytes. Has to be big enough to hold the
i.MXRT initial vector table (IVT) and configuration information. The sizes of
these are defined with IMXRT_MEMORY_FLASH_IVT_SIZE and
IMXRT_MEMORY_FLASH_CFG_SIZE.
type: build
SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
copyrights:
- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)

View File

@@ -1,17 +0,0 @@
actions:
- get-integer: null
- env-assign: null
- define-unquoted: IMXRT_MEMORY_FLEXSPI_FLASH_SIZE
build-type: option
default: 67108864
default-by-variant: []
enabled-by: true
format: '{:#010x}'
links: []
name: IMXRT_MEMORY_FLEXSPI_FLASH_SIZE
description: |
Size of the FlexSPI Flash area in bytes.
type: build
SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
copyrights:
- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)

View File

@@ -2,15 +2,16 @@ actions:
- get-integer: null - get-integer: null
- env-assign: null - env-assign: null
build-type: option build-type: option
default: 0x20000 default: 0x1ff00
default-by-variant: [] default-by-variant: []
enabled-by: true enabled-by: true
format: '{:#010x}' format: '{:#010x}'
links: [] links: []
name: IMXRT_MEMORY_ITCM_SIZE name: IMXRT_MEMORY_ITCM_SIZE
description: | description: |
Size of the ITCM in bytes. Note that these sizes depend on fuses or software Size of the ITCM in bytes. Note that these sizes depend on fuses or software
settings done by a bootloader (together with DTCM and OCRAM). settings done by a bootloader (together with DTCM and OCRAM). The ITCM size
has to take the IMXRT_MEMORY_NULL_SIZE into account!
type: build type: build
SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
copyrights: copyrights:

View File

@@ -2,7 +2,7 @@ actions:
- get-integer: null - get-integer: null
- env-assign: null - env-assign: null
build-type: option build-type: option
default: 0x400 default: 0x100
default-by-variant: [] default-by-variant: []
enabled-by: true enabled-by: true
format: '{:#010x}' format: '{:#010x}'
@@ -10,7 +10,8 @@ links: []
name: IMXRT_MEMORY_NULL_SIZE name: IMXRT_MEMORY_NULL_SIZE
description: | description: |
Size of the NULL pointer protection area in bytes. This memory area reduces Size of the NULL pointer protection area in bytes. This memory area reduces
the size of the ITCM available to the application. the size of the ITCM available to the application. If you adapt this, you
have to adapt IMXRT_MEMORY_ITCM_SIZE too.
type: build type: build
SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
copyrights: copyrights:

View File

@@ -9,7 +9,8 @@ format: '{:#010x}'
links: [] links: []
name: IMXRT_MEMORY_OCRAM_NOCACHE_SIZE name: IMXRT_MEMORY_OCRAM_NOCACHE_SIZE
description: | description: |
Size of the nocache area at the end of the OCRAM in bytes. Size of the nocache area at the end of the OCRAM in bytes. Must not be bigger
than IMXRT_MEMORY_OCRAM_SIZE.
type: build type: build
SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
copyrights: copyrights:

View File

@@ -9,8 +9,10 @@ format: '{:#010x}'
links: [] links: []
name: IMXRT_MEMORY_OCRAM_SIZE name: IMXRT_MEMORY_OCRAM_SIZE
description: | description: |
Size of the OCRAM in bytes. Note that these sizes depend on fuses or software Size of the OCRAM in bytes. Note that these sizes depend on fuses or software
settings done by a bootloader (together with ITCM and DTCM). settings done by a bootloader (together with ITCM and DTCM). The size has to
be at least big enough to hold the non cached section with size
IMXRT_MEMORY_OCRAM_NOCACHE_SIZE at the end of the RAM.
type: build type: build
SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
copyrights: copyrights: