Browse Source

fix(versal): fix BLXX memory limits for user defined values

When compiling with user defined areas of memory the platform code
calculates the size with (base + size - 1).  However, the linker file
aligns section on a page boundary.  So having the -1 in the size
calculations leads to an error message looking like this:

bl31.elf section `coherent_ram' will not fit in region `RAM'
aarch64-buildroot-linux-uclibc-ld: region `RAM' overflowed by 1 byte

While at it fix all other occurences of predefined values that were
calculated with -1

Fixes: commit f91c3cb1df ("arm64: versal: Add support for new Xilinx Versal ACAPs")
Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Change-Id: Ica1f97867b701e7fcd60ea8ea07d2ae96c485443
pull/1982/merge
Ilias Apalodimas 1 year ago
parent
commit
f123b91fdd
  1. 12
      plat/xilinx/versal/include/platform_def.h

12
plat/xilinx/versal/include/platform_def.h

@ -33,12 +33,12 @@
*/ */
#ifndef VERSAL_ATF_MEM_BASE #ifndef VERSAL_ATF_MEM_BASE
# define BL31_BASE U(0xfffe0000) # define BL31_BASE U(0xfffe0000)
# define BL31_LIMIT U(0xffffffff) # define BL31_LIMIT U(0x100000000)
#else #else
# define BL31_BASE (VERSAL_ATF_MEM_BASE) # define BL31_BASE (VERSAL_ATF_MEM_BASE)
# define BL31_LIMIT (VERSAL_ATF_MEM_BASE + VERSAL_ATF_MEM_SIZE - 1) # define BL31_LIMIT (VERSAL_ATF_MEM_BASE + VERSAL_ATF_MEM_SIZE)
# ifdef VERSAL_ATF_MEM_PROGBITS_SIZE # ifdef VERSAL_ATF_MEM_PROGBITS_SIZE
# define BL31_PROGBITS_LIMIT (VERSAL_ATF_MEM_BASE + VERSAL_ATF_MEM_PROGBITS_SIZE - 1) # define BL31_PROGBITS_LIMIT (VERSAL_ATF_MEM_BASE + VERSAL_ATF_MEM_PROGBITS_SIZE)
# endif # endif
#endif #endif
@ -47,10 +47,10 @@
******************************************************************************/ ******************************************************************************/
#ifndef VERSAL_BL32_MEM_BASE #ifndef VERSAL_BL32_MEM_BASE
# define BL32_BASE U(0x60000000) # define BL32_BASE U(0x60000000)
# define BL32_LIMIT U(0x7fffffff) # define BL32_LIMIT U(0x80000000)
#else #else
# define BL32_BASE (VERSAL_BL32_MEM_BASE) # define BL32_BASE (VERSAL_BL32_MEM_BASE)
# define BL32_LIMIT (VERSAL_BL32_MEM_BASE + VERSAL_BL32_MEM_SIZE - 1) # define BL32_LIMIT (VERSAL_BL32_MEM_BASE + VERSAL_BL32_MEM_SIZE)
#endif #endif
/******************************************************************************* /*******************************************************************************
@ -66,7 +66,7 @@
* TSP specific defines. * TSP specific defines.
******************************************************************************/ ******************************************************************************/
#define TSP_SEC_MEM_BASE BL32_BASE #define TSP_SEC_MEM_BASE BL32_BASE
#define TSP_SEC_MEM_SIZE (BL32_LIMIT - BL32_BASE + 1) #define TSP_SEC_MEM_SIZE (BL32_LIMIT - BL32_BASE)
/* ID of the secure physical generic timer interrupt used by the TSP */ /* ID of the secure physical generic timer interrupt used by the TSP */
#define TSP_IRQ_SEC_PHY_TIMER ARM_IRQ_SEC_PHY_TIMER #define TSP_IRQ_SEC_PHY_TIMER ARM_IRQ_SEC_PHY_TIMER

Loading…
Cancel
Save