diff --git a/include/arch/arm/cortex_m/scripts/linker.ld b/include/arch/arm/cortex_m/scripts/linker.ld index ba35922aa2d..e0b6f524106 100644 --- a/include/arch/arm/cortex_m/scripts/linker.ld +++ b/include/arch/arm/cortex_m/scripts/linker.ld @@ -41,7 +41,11 @@ #endif #define ROM_ADDR (CONFIG_FLASH_BASE_ADDRESS + CONFIG_FLASH_LOAD_OFFSET) -#define ROM_SIZE (CONFIG_FLASH_SIZE*1K - CONFIG_FLASH_LOAD_OFFSET) +#if CONFIG_FLASH_LOAD_SIZE > 0 + #define ROM_SIZE CONFIG_FLASH_LOAD_SIZE +#else + #define ROM_SIZE (CONFIG_FLASH_SIZE*1K - CONFIG_FLASH_LOAD_OFFSET) +#endif #if defined(CONFIG_XIP) #if defined(CONFIG_IS_BOOTLOADER) diff --git a/misc/Kconfig b/misc/Kconfig index 8c63047dc56..e5eca32b985 100644 --- a/misc/Kconfig +++ b/misc/Kconfig @@ -12,7 +12,8 @@ menu "Linker Options" config HAS_FLASH_LOAD_OFFSET bool help - This option is selected by targets having a FLASH_LOAD_OFFSET. + This option is selected by targets having a FLASH_LOAD_OFFSET + and FLASH_LOAD_SIZE. config FLASH_LOAD_OFFSET hex "Kernel load offset" @@ -26,6 +27,18 @@ config FLASH_LOAD_OFFSET If unsure, leave at the default value 0. +config FLASH_LOAD_SIZE + hex "Kernel load size" + default 0 + depends on HAS_FLASH_LOAD_OFFSET + help + If non-zero, this option specifies the size, in bytes, of the flash + area that the Zephyr image will be allowed to occupy. If zero, the + image will be able to occupy from the FLASH_LOAD_OFFSET to the end of + the device. + + If unsure, leave at the default value 0. + config TEXT_SECTION_OFFSET hex "TEXT section offset" default 0