diff --git a/include/arch/arm/cortex_m/scripts/linker.ld b/include/arch/arm/cortex_m/scripts/linker.ld index 06cfe6bf268..2b00d7cd3e8 100644 --- a/include/arch/arm/cortex_m/scripts/linker.ld +++ b/include/arch/arm/cortex_m/scripts/linker.ld @@ -161,12 +161,6 @@ SECTIONS */ #include -#ifdef CONFIG_KINETIS_FLASH_CONFIG - . = CONFIG_KINETIS_FLASH_CONFIG_OFFSET; - KEEP(*(.kinetis_flash_config)) - KEEP(*(".kinetis_flash_config.*")) -#endif - } GROUP_LINK_IN(ROMABLE_REGION) #ifdef CONFIG_CODE_DATA_RELOCATION diff --git a/include/arch/arm/cortex_r/scripts/linker.ld b/include/arch/arm/cortex_r/scripts/linker.ld index e3d9d4054f9..a6f602415ea 100644 --- a/include/arch/arm/cortex_r/scripts/linker.ld +++ b/include/arch/arm/cortex_r/scripts/linker.ld @@ -158,11 +158,6 @@ SECTIONS */ #include - /* Kinetis has to write 16 bytes at 0x400 */ - SKIP_TO_KINETIS_FLASH_CONFIG - KEEP(*(.kinetis_flash_config)) - KEEP(*(".kinetis_flash_config.*")) - } GROUP_LINK_IN(ROMABLE_REGION) #ifdef CONFIG_CODE_DATA_RELOCATION diff --git a/soc/arm/nxp_kinetis/CMakeLists.txt b/soc/arm/nxp_kinetis/CMakeLists.txt index 82567384f3a..6f94099e80c 100644 --- a/soc/arm/nxp_kinetis/CMakeLists.txt +++ b/soc/arm/nxp_kinetis/CMakeLists.txt @@ -3,3 +3,9 @@ zephyr_sources_ifdef(CONFIG_KINETIS_FLASH_CONFIG flash_configuration.c) add_subdirectory(${SOC_SERIES}) + +zephyr_linker_sources_ifdef(CONFIG_KINETIS_FLASH_CONFIG + TEXT_START + SORT_KEY ${CONFIG_KINETIS_FLASH_CONFIG_OFFSET} + flash_config.ld + ) diff --git a/soc/arm/nxp_kinetis/flash_config.ld b/soc/arm/nxp_kinetis/flash_config.ld new file mode 100644 index 00000000000..9c86a8b5880 --- /dev/null +++ b/soc/arm/nxp_kinetis/flash_config.ld @@ -0,0 +1,10 @@ +/* + * Copyright (c) 2019 NXP + * Copyright (c) 2019 Nordic Semiconductor ASA + * + * SPDX-License-Identifier: Apache-2.0 + */ + +. = CONFIG_KINETIS_FLASH_CONFIG_OFFSET; +KEEP(*(.kinetis_flash_config)) +KEEP(*(".kinetis_flash_config.*"))