Hi Stefano, On Tue, Nov 10, 2015 at 02:14:10PM +0100, Albert ARIBAUD wrote: >Hello Peng, > >On Fri, 23 Oct 2015 10:13:03 +0800, Peng Fan <peng....@freescale.com> >wrote: >> The code such as PSCI in section named secure is bundled with >> u-boot image, and when bootm, the code will be copied to their >> runtime address same to compliation/linking address - >> CONFIG_ARMV7_SECURE_BASE. >> >> When compile the PSCI code and link it into the u-boot image, >> there will be relocation entries in .rel.dyn section for PSCI. >> Actually, we do not needs these relocation entries. >> >> If still keep the relocation entries in .rel.dyn section, >> r0 at line 103 and 106 in arch/arm/lib/relocate.S may be an invalid >> address which may not support read/write for one SoC. >> 102 /* relative fix: increase location by offset */ >> 103 add r0, r0, r4 >> 104 ldr r1, [r0] >> 105 add r1, r1, r4 >> 106 str r1, [r0] >> >> So discard them to avoid touching the relocation entry in >> arch/arm/lib/relocate.S. >> >> Signed-off-by: Peng Fan <peng....@freescale.com> >> Cc: Tom Warren <twar...@nvidia.com> >> Cc: York Sun <york...@freescale.com> >> Cc: Hans De Goede <hdego...@redhat.com> >> Cc: Ian Campbell <i...@hellion.org.uk> >> Cc: Albert Aribaud <albert.u.b...@aribaud.net> >> Cc: Tom Rini <tr...@konsulko.com> >> Cc: Jan Kiszka <jan.kis...@siemens.com> >> Cc: Stefano Babic <sba...@denx.de> >> --- >> >> Changes v4: >> none >> >> V2 thread: http://lists.denx.de/pipermail/u-boot/2015-October/230755.html >> Changes v3: >> Move the relocation entries to the very begining and discard them. >> >> V1 thread: http://lists.denx.de/pipermail/u-boot/2015-October/229426.html >> Changes V2: >> Refine commit msg. >> Discard the relocation entry section for secure text. >> >> arch/arm/cpu/u-boot.lds | 17 +++++++++++++++++ >> 1 file changed, 17 insertions(+) >> >> diff --git a/arch/arm/cpu/u-boot.lds b/arch/arm/cpu/u-boot.lds >> index 03cd9f6..d48a905 100644 >> --- a/arch/arm/cpu/u-boot.lds >> +++ b/arch/arm/cpu/u-boot.lds >> @@ -14,6 +14,23 @@ OUTPUT_ARCH(arm) >> ENTRY(_start) >> SECTIONS >> { >> + /* >> + * Discard the relocation entries for secure text. >> + * The secure code is bundled with u-boot image, so there will >> + * be relocations entries for the secure code, since we use >> + * "-mword-relocations" to compile and "-pie" to link into the >> + * final image. We do not need the relocation entries for secure >> + * code, because secure code will not be relocated, it only needs >> + * to be copied from loading address to CONFIG_ARMV7_SECURE_BASE, >> + * which is the linking and running address for secure code. >> + * If keep the relocation entries in .rel.dyn section, >> + * "relocation offset + linking address" may locates into an >> + * address that is reserved by SoC, then will trigger data abort. >> + * >> + * The reason that move .rel._secure at the beginning, is to >> + * avoid hole in the final image. >> + */ >> + /DISCARD/ : { *(.rel._secure*) } >> . = 0x00000000; >> >> . = ALIGN(4); >> -- >> 1.8.4 >> >> > >Acked-by: Albert ARIBAUD <albert.u.b...@aribaud.net> >
Can you please take a look at the patch set and merge? Thanks, Peng. >Amicalement, >-- >Albert. -- _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot