From 487d3bf286d73cf5cb9dadb95426b4aed36764ad Mon Sep 17 00:00:00 2001 From: Roberto Vargas Date: Fri, 17 Nov 2017 10:51:54 +0000 Subject: bl2-el3: Mark all the assembly functions in bl2 at el3 When BL2_AT_EL3 option is enabled some platforms are going to need a resident part in BL2 because the boot rom may jump to it after a reset. This patch introduces __TEXT_RESIDENT_START__ and __TEXT_RESIDENT_END__ linker symbols that mark the resident region. Change-Id: Ib20c1b8ee257831bcc0ca7d3df98d0cb617a04f8 Signed-off-by: Roberto Vargas --- bl2/bl2_el3.ld.S | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) (limited to 'bl2') diff --git a/bl2/bl2_el3.ld.S b/bl2/bl2_el3.ld.S index 7ec4646f..57709e35 100644 --- a/bl2/bl2_el3.ld.S +++ b/bl2/bl2_el3.ld.S @@ -25,7 +25,10 @@ SECTIONS #if SEPARATE_CODE_AND_RODATA .text . : { __TEXT_START__ = .; - *bl2_el3_entrypoint.o(.text*) + __TEXT_RESIDENT_START__ = .; + *bl2_el3_entrypoint.o(.text*) + *(.text.asm.*) + __TEXT_RESIDENT_END__ = .; *(.text*) *(.vectors) . = NEXT(PAGE_SIZE); @@ -54,10 +57,16 @@ SECTIONS . = NEXT(PAGE_SIZE); __RODATA_END__ = .; } >RAM + + ASSERT(__TEXT_RESIDENT_END__ - __TEXT_RESIDENT_START__ <= PAGE_SIZE, + "Resident part of BL2 has exceeded its limit.") #else ro . : { __RO_START__ = .; - *bl2_el3_entrypoint.o(.text*) + __TEXT_RESIDENT_START__ = .; + *bl2_el3_entrypoint.o(.text*) + *(.text.asm.*) + __TEXT_RESIDENT_END__ = .; *(.text*) *(.rodata*) -- cgit v1.2.3