diff --git a/bl1/bl1_private.h b/bl1/bl1_private.h index bdbf80f32..927c7b8a2 100644 --- a/bl1/bl1_private.h +++ b/bl1/bl1_private.h @@ -9,16 +9,7 @@ #include -#include - -/******************************************************************************* - * Declarations of linker defined symbols which will tell us where BL1 lives - * in Trusted ROM and RAM - ******************************************************************************/ -IMPORT_SYM(uintptr_t, __BL1_ROM_END__, BL1_ROM_END); - -IMPORT_SYM(uintptr_t, __BL1_RAM_START__, BL1_RAM_BASE); -IMPORT_SYM(uintptr_t, __BL1_RAM_END__, BL1_RAM_LIMIT); +#include /****************************************** * Function prototypes @@ -36,4 +27,5 @@ register_t bl1_fwu_smc_handler(unsigned int smc_fid, void *cookie, void *handle, unsigned int flags); + #endif /* BL1_PRIVATE_H */ diff --git a/bl2/bl2_private.h b/bl2/bl2_private.h index 01f6c6bd2..b1704d282 100644 --- a/bl2/bl2_private.h +++ b/bl2/bl2_private.h @@ -7,22 +7,7 @@ #ifndef BL2_PRIVATE_H #define BL2_PRIVATE_H -#if BL2_IN_XIP_MEM - -#include - -/******************************************************************************* - * Declarations of linker defined symbols which will tell us where BL2 lives - * in Trusted ROM and RAM - ******************************************************************************/ -extern uintptr_t __BL2_ROM_END__; -#define BL2_ROM_END (uintptr_t)(&__BL2_ROM_END__) - -extern uintptr_t __BL2_RAM_START__; -extern uintptr_t __BL2_RAM_END__; -#define BL2_RAM_BASE (uintptr_t)(&__BL2_RAM_START__) -#define BL2_RAM_LIMIT (uintptr_t)(&__BL2_RAM_END__) -#endif +#include /****************************************** * Forward declarations diff --git a/include/common/bl_common.h b/include/common/bl_common.h index c12b08bb7..f7b3b9c7d 100644 --- a/include/common/bl_common.h +++ b/include/common/bl_common.h @@ -78,7 +78,12 @@ IMPORT_SYM(unsigned long, __RO_START__, BL_CODE_BASE); IMPORT_SYM(unsigned long, __RO_END__, BL_CODE_END); #endif -#if defined(IMAGE_BL2) +#if defined(IMAGE_BL1) +IMPORT_SYM(uintptr_t, __BL1_ROM_END__, BL1_ROM_END); + +IMPORT_SYM(uintptr_t, __BL1_RAM_START__, BL1_RAM_BASE); +IMPORT_SYM(uintptr_t, __BL1_RAM_END__, BL1_RAM_LIMIT); +#elif defined(IMAGE_BL2) IMPORT_SYM(unsigned long, __BL2_END__, BL2_END); #elif defined(IMAGE_BL2U) IMPORT_SYM(unsigned long, __BL2U_END__, BL2U_END); @@ -89,6 +94,17 @@ IMPORT_SYM(unsigned long, __BL31_END__, BL31_END); IMPORT_SYM(unsigned long, __BL32_END__, BL32_END); #endif /* IMAGE_BLX */ +/* The following symbols are only exported from the BL2 at EL3 linker script. */ +#if BL2_IN_XIP_MEM && defined(IMAGE_BL2) +extern uintptr_t __BL2_ROM_END__; +#define BL2_ROM_END (uintptr_t)(&__BL2_ROM_END__) + +extern uintptr_t __BL2_RAM_START__; +extern uintptr_t __BL2_RAM_END__; +#define BL2_RAM_BASE (uintptr_t)(&__BL2_RAM_START__) +#define BL2_RAM_LIMIT (uintptr_t)(&__BL2_RAM_END__) +#endif /* BL2_IN_XIP_MEM */ + /* * The next 2 constants identify the extents of the coherent memory region. * These addresses are used by the MMU setup code and therefore they must be diff --git a/plat/arm/common/arm_bl1_setup.c b/plat/arm/common/arm_bl1_setup.c index e28211cfa..1a0385a77 100644 --- a/plat/arm/common/arm_bl1_setup.c +++ b/plat/arm/common/arm_bl1_setup.c @@ -19,8 +19,6 @@ #include #include -#include "../../../bl1/bl1_private.h" - /* Weak definitions may be overridden in specific ARM standard platform */ #pragma weak bl1_early_platform_setup #pragma weak bl1_plat_arch_setup diff --git a/plat/arm/css/sgi/sgi_plat.c b/plat/arm/css/sgi/sgi_plat.c index 79f3e5b55..2515e3b1b 100644 --- a/plat/arm/css/sgi/sgi_plat.c +++ b/plat/arm/css/sgi/sgi_plat.c @@ -17,7 +17,6 @@ #include #include #include -#include "../../../../bl1/bl1_private.h" #if USE_COHERENT_MEM /* diff --git a/plat/hisilicon/hikey/hikey_bl1_setup.c b/plat/hisilicon/hikey/hikey_bl1_setup.c index a08bdfa72..a97d76320 100644 --- a/plat/hisilicon/hikey/hikey_bl1_setup.c +++ b/plat/hisilicon/hikey/hikey_bl1_setup.c @@ -22,7 +22,6 @@ #include #include -#include "../../../bl1/bl1_private.h" #include "hikey_private.h" /* Data structure which holds the extents of the trusted RAM for BL1 */ diff --git a/plat/hisilicon/hikey960/hikey960_bl1_setup.c b/plat/hisilicon/hikey960/hikey960_bl1_setup.c index 38bdbe417..4a7036cfc 100644 --- a/plat/hisilicon/hikey960/hikey960_bl1_setup.c +++ b/plat/hisilicon/hikey960/hikey960_bl1_setup.c @@ -25,7 +25,6 @@ #include #include -#include "../../../bl1/bl1_private.h" #include "hikey960_def.h" #include "hikey960_private.h" diff --git a/plat/hisilicon/poplar/bl1_plat_setup.c b/plat/hisilicon/poplar/bl1_plat_setup.c index eb8ffe4fd..08ad67c59 100644 --- a/plat/hisilicon/poplar/bl1_plat_setup.c +++ b/plat/hisilicon/poplar/bl1_plat_setup.c @@ -22,7 +22,6 @@ #include #include -#include "../../../bl1/bl1_private.h" #include "hi3798cv200.h" #include "plat_private.h" diff --git a/plat/layerscape/common/ls_bl1_setup.c b/plat/layerscape/common/ls_bl1_setup.c index fb929fef1..163b35c48 100644 --- a/plat/layerscape/common/ls_bl1_setup.c +++ b/plat/layerscape/common/ls_bl1_setup.c @@ -4,11 +4,11 @@ * SPDX-License-Identifier: BSD-3-Clause */ +#include #include #include "ls_16550.h" #include "plat_ls.h" -#include "../../../bl1/bl1_private.h" /* Data structure which holds the extents of the trusted SRAM for BL1*/ static meminfo_t bl1_tzram_layout; diff --git a/plat/marvell/common/marvell_bl1_setup.c b/plat/marvell/common/marvell_bl1_setup.c index 8f7221025..7b7cef39b 100644 --- a/plat/marvell/common/marvell_bl1_setup.c +++ b/plat/marvell/common/marvell_bl1_setup.c @@ -8,7 +8,6 @@ #include #include -#include #include #include #include diff --git a/plat/qemu/qemu_private.h b/plat/qemu/qemu_private.h index ab2bf1ba3..754831ab5 100644 --- a/plat/qemu/qemu_private.h +++ b/plat/qemu/qemu_private.h @@ -9,8 +9,6 @@ #include -#include "../../bl1/bl1_private.h" - void qemu_configure_mmu_svc_mon(unsigned long total_base, unsigned long total_size, unsigned long code_start, unsigned long code_limit, diff --git a/plat/rpi3/rpi3_bl1_setup.c b/plat/rpi3/rpi3_bl1_setup.c index ea4215d83..b869e9da8 100644 --- a/plat/rpi3/rpi3_bl1_setup.c +++ b/plat/rpi3/rpi3_bl1_setup.c @@ -13,7 +13,6 @@ #include #include -#include "../../bl1/bl1_private.h" #include "rpi3_private.h" /* Data structure which holds the extents of the trusted SRAM for BL1 */