Hi Arnab, On Thu, 28 Aug 2014 01:59:57 +0530, Arnab Basu <arnab.b...@freescale.com> wrote:
> A separate linker section makes it possible to keep this code either > in DDR or in some secure memory location provided specifically for the > purpose. > > So far no one is using this section. > > Signed-off-by: Arnab Basu <arnab.b...@freescale.com> > Reviewed-by: Bhupesh Sharma <bhupesh.sha...@freescale.com> > Cc: Marc Zyngier <marc.zyng...@arm.com> > --- > arch/arm/config.mk | 2 +- > arch/arm/cpu/armv8/u-boot.lds | 30 ++++++++++++++++++++++++++++++ > 2 files changed, 31 insertions(+), 1 deletions(-) > > diff --git a/arch/arm/config.mk b/arch/arm/config.mk > index c339e6d..9272e9c 100644 > --- a/arch/arm/config.mk > +++ b/arch/arm/config.mk > @@ -111,7 +111,7 @@ endif > > # limit ourselves to the sections we want in the .bin. > ifdef CONFIG_ARM64 > -OBJCOPYFLAGS += -j .text -j .rodata -j .data -j .u_boot_list -j .rela.dyn > +OBJCOPYFLAGS += -j .text -j .secure_text -j .rodata -j .data -j .u_boot_list > -j .rela.dyn > else > OBJCOPYFLAGS += -j .text -j .secure_text -j .rodata -j .hash -j .data -j > .got.plt -j .u_boot_list -j .rel.dyn > endif > diff --git a/arch/arm/cpu/armv8/u-boot.lds b/arch/arm/cpu/armv8/u-boot.lds > index 4c12222..bd95fff 100644 > --- a/arch/arm/cpu/armv8/u-boot.lds > +++ b/arch/arm/cpu/armv8/u-boot.lds > @@ -8,6 +8,8 @@ > * SPDX-License-Identifier: GPL-2.0+ > */ > > +#include <config.h> > + > OUTPUT_FORMAT("elf64-littleaarch64", "elf64-littleaarch64", > "elf64-littleaarch64") > OUTPUT_ARCH(aarch64) > ENTRY(_start) > @@ -23,6 +25,34 @@ SECTIONS > *(.text*) > } > > +#ifdef CONFIG_ARMV8_PSCI > + > +#ifndef CONFIG_ARMV8_SECURE_BASE > +#define CONFIG_ARMV8_SECURE_BASE > +#endif > + > + .__secure_start : { > + . = ALIGN(0x1000); > + *(.__secure_start) > + } > + > + .secure_text CONFIG_ARMV8_SECURE_BASE : > + AT(ADDR(.__secure_start) + SIZEOF(.__secure_start)) > + { > + *(._secure.text) > + } > + > + . = LOADADDR(.__secure_start) + > + SIZEOF(.__secure_start) + > + SIZEOF(.secure_text); > + > + __secure_end_lma = .; > + .__secure_end : AT(__secure_end_lma) { > + *(.__secure_end) > + LONG(0x1d1071c); /* Must output something to reset LMA */ Can you explain in more detail what issue this fixes? > + } > +#endif > + > . = ALIGN(8); > .rodata : { *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) } > Amicalement, -- Albert. _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot