From 3dd2f610b00282c7c549c2981f532f1bc3a80b2b Mon Sep 17 00:00:00 2001 From: Kumar Gala Date: Wed, 29 Apr 2020 10:11:28 -0500 Subject: [PATCH] x86: Cleanup linker scripts to use new DTS macros Rework x86 linker scripts to use DT_REG_ADDR/DT_REG_SIZE on DT_CHOSEN(zephyr_sram) and DT_CHOSEN(zephyr_flash). As part of this we remove the dts_fixup.h. Using DT_REG_SIZE means we don't have to adjust the sizes by 1024. Signed-off-by: Kumar Gala --- include/arch/x86/ia32/linker.ld | 4 ++-- include/arch/x86/intel64/linker.ld | 2 +- soc/x86/apollo_lake/dts_fixup.h | 14 -------------- soc/x86/apollo_lake/linker.ld | 7 ++++--- soc/x86/atom/dts_fixup.h | 9 --------- soc/x86/atom/linker.ld | 15 +++++++-------- soc/x86/ia32/dts_fixup.h | 13 ------------- soc/x86/ia32/linker.ld | 15 +++++++-------- 8 files changed, 21 insertions(+), 58 deletions(-) delete mode 100644 soc/x86/apollo_lake/dts_fixup.h delete mode 100644 soc/x86/atom/dts_fixup.h delete mode 100644 soc/x86/ia32/dts_fixup.h diff --git a/include/arch/x86/ia32/linker.ld b/include/arch/x86/ia32/linker.ld index d4bdd2ffcd0..a839303703a 100644 --- a/include/arch/x86/ia32/linker.ld +++ b/include/arch/x86/ia32/linker.ld @@ -359,11 +359,11 @@ SECTIONS __data_ram_end = .; /* All unused memory also owned by the kernel for heaps */ - __kernel_ram_end = PHYS_RAM_ADDR + KB(DT_RAM_SIZE); + __kernel_ram_end = PHYS_RAM_ADDR + PHYS_RAM_SIZE; __kernel_ram_size = __kernel_ram_end - __kernel_ram_start; _image_ram_end = .; - _image_ram_all = (PHYS_RAM_ADDR + KB(DT_RAM_SIZE)) - _image_ram_start; + _image_ram_all = (PHYS_RAM_ADDR + PHYS_RAM_SIZE) - _image_ram_start; _end = .; /* end of image */ diff --git a/include/arch/x86/intel64/linker.ld b/include/arch/x86/intel64/linker.ld index 3524ddda025..e0f716c6b35 100644 --- a/include/arch/x86/intel64/linker.ld +++ b/include/arch/x86/intel64/linker.ld @@ -188,7 +188,7 @@ SECTIONS _end = .; /* All unused memory also owned by the kernel for heaps */ - __kernel_ram_end = PHYS_RAM_ADDR + KB(DT_RAM_SIZE); + __kernel_ram_end = PHYS_RAM_ADDR + PHYS_RAM_SIZE; __kernel_ram_size = __kernel_ram_end - __kernel_ram_start; #include diff --git a/soc/x86/apollo_lake/dts_fixup.h b/soc/x86/apollo_lake/dts_fixup.h deleted file mode 100644 index 8ae1017d6da..00000000000 --- a/soc/x86/apollo_lake/dts_fixup.h +++ /dev/null @@ -1,14 +0,0 @@ -/* - * Copyright (c) 2018-2019 Intel Corporation Inc. - * - * SPDX-License-Identifier: Apache-2.0 - */ - -/* SoC level DTS fixup file */ - -#define DT_PHYS_RAM_ADDR CONFIG_SRAM_BASE_ADDRESS -#define DT_PHYS_LOAD_ADDR CONFIG_FLASH_BASE_ADDRESS -#define DT_RAM_SIZE CONFIG_SRAM_SIZE -#define DT_ROM_SIZE CONFIG_FLASH_SIZE - -/* End of SoC Level DTS fixup file */ diff --git a/soc/x86/apollo_lake/linker.ld b/soc/x86/apollo_lake/linker.ld index b90f93220b3..cda13d8db2d 100644 --- a/soc/x86/apollo_lake/linker.ld +++ b/soc/x86/apollo_lake/linker.ld @@ -8,12 +8,13 @@ #include #include -#define PHYS_LOAD_ADDR DT_PHYS_RAM_ADDR -#define PHYS_RAM_ADDR DT_PHYS_RAM_ADDR +#define PHYS_RAM_ADDR DT_REG_ADDR(DT_CHOSEN(zephyr_sram)) +#define PHYS_RAM_SIZE DT_REG_SIZE(DT_CHOSEN(zephyr_sram)) +#define PHYS_LOAD_ADDR PHYS_RAM_ADDR MEMORY { - RAM (wx) : ORIGIN = DT_PHYS_RAM_ADDR, LENGTH = DT_RAM_SIZE*1K + RAM (wx) : ORIGIN = PHYS_RAM_ADDR, LENGTH = PHYS_RAM_SIZE /* * It doesn't matter where this region goes as it is stripped from the diff --git a/soc/x86/atom/dts_fixup.h b/soc/x86/atom/dts_fixup.h deleted file mode 100644 index f31d192a40c..00000000000 --- a/soc/x86/atom/dts_fixup.h +++ /dev/null @@ -1,9 +0,0 @@ -/* SPDX-License-Identifier: Apache-2.0 */ - -/* SoC level DTS fixup file */ - -#define DT_PHYS_RAM_ADDR CONFIG_SRAM_BASE_ADDRESS - -#define DT_RAM_SIZE CONFIG_SRAM_SIZE - -/* End of SoC Level DTS fixup file */ diff --git a/soc/x86/atom/linker.ld b/soc/x86/atom/linker.ld index 1aafcd78e85..e117113b2b9 100644 --- a/soc/x86/atom/linker.ld +++ b/soc/x86/atom/linker.ld @@ -17,22 +17,21 @@ /* physical address where the kernel is loaded */ /* physical address of RAM */ +#define PHYS_RAM_ADDR DT_REG_ADDR(DT_CHOSEN(zephyr_sram)) +#define PHYS_RAM_SIZE DT_REG_SIZE(DT_CHOSEN(zephyr_sram)) + #ifdef CONFIG_XIP - #define PHYS_LOAD_ADDR DT_PHYS_LOAD_ADDR - #define PHYS_RAM_ADDR DT_PHYS_RAM_ADDR + #define PHYS_LOAD_ADDR DT_REG_ADDR(DT_CHOSEN(zephyr_flash)) #else /* !CONFIG_XIP */ - #define PHYS_LOAD_ADDR DT_PHYS_RAM_ADDR - #define PHYS_RAM_ADDR DT_PHYS_RAM_ADDR + #define PHYS_LOAD_ADDR PHYS_RAM_ADDR #endif /* CONFIG_XIP */ MEMORY { #ifdef CONFIG_XIP - ROM (rx) : ORIGIN = PHYS_LOAD_ADDR, LENGTH = DT_ROM_SIZE*1K - RAM (wx) : ORIGIN = PHYS_RAM_ADDR, LENGTH = DT_RAM_SIZE*1K -#else /* !CONFIG_XIP */ - RAM (wx) : ORIGIN = PHYS_LOAD_ADDR, LENGTH = DT_RAM_SIZE*1K + ROM (rx) : ORIGIN = PHYS_LOAD_ADDR, LENGTH = DT_REG_SIZE(DT_CHOSEN(zephyr_flash)) #endif /* CONFIG_XIP */ + RAM (wx) : ORIGIN = PHYS_RAM_ADDR, LENGTH = PHYS_RAM_SIZE /* * It doesn't matter where this region goes as it is stripped from the diff --git a/soc/x86/ia32/dts_fixup.h b/soc/x86/ia32/dts_fixup.h deleted file mode 100644 index 463429257ea..00000000000 --- a/soc/x86/ia32/dts_fixup.h +++ /dev/null @@ -1,13 +0,0 @@ -/* SPDX-License-Identifier: Apache-2.0 */ - -/* SoC level DTS fixup file */ - -#define DT_PHYS_RAM_ADDR CONFIG_SRAM_BASE_ADDRESS - -#define DT_PHYS_LOAD_ADDR CONFIG_FLASH_BASE_ADDRESS - -#define DT_RAM_SIZE CONFIG_SRAM_SIZE - -#define DT_ROM_SIZE CONFIG_FLASH_SIZE - -/* End of SoC Level DTS fixup file */ diff --git a/soc/x86/ia32/linker.ld b/soc/x86/ia32/linker.ld index 6e60f08dce5..65352b70c31 100644 --- a/soc/x86/ia32/linker.ld +++ b/soc/x86/ia32/linker.ld @@ -19,22 +19,21 @@ /* physical address where the kernel is loaded */ /* physical address of RAM */ +#define PHYS_RAM_ADDR DT_REG_ADDR(DT_CHOSEN(zephyr_sram)) +#define PHYS_RAM_SIZE DT_REG_SIZE(DT_CHOSEN(zephyr_sram)) + #ifdef CONFIG_XIP - #define PHYS_LOAD_ADDR DT_PHYS_LOAD_ADDR - #define PHYS_RAM_ADDR DT_PHYS_RAM_ADDR + #define PHYS_LOAD_ADDR DT_REG_ADDR(DT_CHOSEN(zephyr_flash)) #else /* !CONFIG_XIP */ - #define PHYS_LOAD_ADDR DT_PHYS_RAM_ADDR - #define PHYS_RAM_ADDR DT_PHYS_RAM_ADDR + #define PHYS_LOAD_ADDR PHYS_RAM_ADDR #endif /* CONFIG_XIP */ MEMORY { #ifdef CONFIG_XIP - ROM (rx) : ORIGIN = PHYS_LOAD_ADDR, LENGTH = DT_ROM_SIZE*1K - RAM (wx) : ORIGIN = PHYS_RAM_ADDR, LENGTH = DT_RAM_SIZE*1K -#else /* !CONFIG_XIP */ - RAM (wx) : ORIGIN = PHYS_RAM_ADDR, LENGTH = DT_RAM_SIZE*1K + ROM (rx) : ORIGIN = PHYS_LOAD_ADDR, LENGTH = DT_REG_SIZE(DT_CHOSEN(zephyr_flash)) #endif /* CONFIG_XIP */ + RAM (wx) : ORIGIN = PHYS_RAM_ADDR, LENGTH = PHYS_RAM_SIZE /* * It doesn't matter where this region goes as it is stripped from the