From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefano Babic Date: Thu, 12 Nov 2015 17:32:18 +0100 Subject: [U-Boot] [PATCH V4 1/3] arm: discard relocation entries for secure text In-Reply-To: <56437573.6080806@denx.de> References: <1445566385-15129-1-git-send-email-Peng.Fan@freescale.com> <20151110141410.0a1484ef@lilith> <20151111011421.GA12906@shlinux2> <56437573.6080806@denx.de> Message-ID: <5644BF12.4000306@denx.de> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On 11/11/2015 18:05, Stefano Babic wrote: > On 11/11/2015 02:14, Peng Fan wrote: >> 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 >>> 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 >>>> Cc: Tom Warren >>>> Cc: York Sun >>>> Cc: Hans De Goede >>>> Cc: Ian Campbell >>>> Cc: Albert Aribaud >>>> Cc: Tom Rini >>>> Cc: Jan Kiszka >>>> Cc: Stefano Babic >>>> --- >>>> >>>> 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 >>> >> >> Can you please take a look at the patch set and merge? > Applied (whole series) to u-boot-imx, thanks ! Best regards, Stefano Babic -- ===================================================================== DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de =====================================================================