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

Reply via email to