* [U-Boot] [PATCH] zynq: Fix elf header generation
@ 2014-02-04 15:59 Michal Simek
2014-02-04 20:35 ` Tom Rini
2014-02-05 3:00 ` Masahiro Yamada
0 siblings, 2 replies; 5+ messages in thread
From: Michal Simek @ 2014-02-04 15:59 UTC (permalink / raw)
To: u-boot
This patch is here because of:
"arm: keep all sections in ELF file"
(sha1: 47ed5dd031d7d2c587e6afd386e79ccec1a1b7f7)
Our tools expect to have elf with only LOAD header.
Without this fix also PHDR, INTERP and DYNAMIC headers
are available in ELF.
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
---
Albert: We have discussed about patch via IRC that this
is reasonable solution.
I am sending it for a record and if it is fine I will add
it to my zynq branch and then will send you pull request.
---
arch/arm/cpu/armv7/zynq/u-boot.lds | 103 +++++++++++++++++++++++++++++++++++++
include/configs/zynq-common.h | 3 ++
2 files changed, 106 insertions(+)
create mode 100644 arch/arm/cpu/armv7/zynq/u-boot.lds
diff --git a/arch/arm/cpu/armv7/zynq/u-boot.lds b/arch/arm/cpu/armv7/zynq/u-boot.lds
new file mode 100644
index 0000000..764f04b
--- /dev/null
+++ b/arch/arm/cpu/armv7/zynq/u-boot.lds
@@ -0,0 +1,103 @@
+/*
+ * Copyright (c) 2004-2008 Texas Instruments
+ *
+ * (C) Copyright 2002
+ * Gary Jennejohn, DENX Software Engineering, <garyj@denx.de>
+ *
+ * SPDX-License-Identifier: GPL-2.0+
+ */
+
+OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
+OUTPUT_ARCH(arm)
+ENTRY(_start)
+SECTIONS
+{
+ . = 0x00000000;
+
+ . = ALIGN(4);
+ .text :
+ {
+ *(.__image_copy_start)
+ CPUDIR/start.o (.text*)
+ *(.text*)
+ }
+
+ . = ALIGN(4);
+ .rodata : { *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) }
+
+ . = ALIGN(4);
+ .data : {
+ *(.data*)
+ }
+
+ . = ALIGN(4);
+
+ . = .;
+
+ . = ALIGN(4);
+ .u_boot_list : {
+ KEEP(*(SORT(.u_boot_list*)));
+ }
+
+ . = ALIGN(4);
+
+ .image_copy_end :
+ {
+ *(.__image_copy_end)
+ }
+
+ .rel_dyn_start :
+ {
+ *(.__rel_dyn_start)
+ }
+
+ .rel.dyn : {
+ *(.rel*)
+ }
+
+ .rel_dyn_end :
+ {
+ *(.__rel_dyn_end)
+ }
+
+ _end = .;
+
+ /*
+ * Deprecated: this MMU section is used by pxa at present but
+ * should not be used by new boards/CPUs.
+ */
+ . = ALIGN(4096);
+ .mmutable : {
+ *(.mmutable)
+ }
+
+/*
+ * Compiler-generated __bss_start and __bss_end, see arch/arm/lib/bss.c
+ * __bss_base and __bss_limit are for linker only (overlay ordering)
+ */
+
+ .bss_start __rel_dyn_start (OVERLAY) : {
+ KEEP(*(.__bss_start));
+ __bss_base = .;
+ }
+
+ .bss __bss_base (OVERLAY) : {
+ *(.bss*)
+ . = ALIGN(4);
+ __bss_limit = .;
+ }
+
+ .bss_end __bss_limit (OVERLAY) : {
+ KEEP(*(.__bss_end));
+ }
+
+ /DISCARD/ : { *(.dynsym) }
+ /DISCARD/ : { *(.dynbss*) }
+ /DISCARD/ : { *(.dynstr*) }
+ /DISCARD/ : { *(.dynamic*) }
+ /DISCARD/ : { *(.plt*) }
+ /DISCARD/ : { *(.interp*) }
+ /DISCARD/ : { *(.gnu*) }
+ /DISCARD/ : { *(.ARM.exidx*) }
+ /DISCARD/ : { *(.gnu.linkonce.armexidx.*) }
+}
diff --git a/include/configs/zynq-common.h b/include/configs/zynq-common.h
index dfa337f..36b9508 100644
--- a/include/configs/zynq-common.h
+++ b/include/configs/zynq-common.h
@@ -216,6 +216,8 @@
# define CONFIG_SYS_MMC_MAX_DEVICE 1
#endif
+#define CONFIG_SYS_LDSCRIPT "arch/arm/cpu/armv7/zynq/u-boot.lds"
+
/* Commands */
#include <config_cmd_default.h>
@@ -224,4 +226,5 @@
#define CONFIG_CMD_MII
#define CONFIG_CMD_TFTPPUT
+
#endif /* __CONFIG_ZYNQ_COMMON_H */
--
1.8.2.3
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: not available
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20140204/0577f625/attachment.pgp>
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [U-Boot] [PATCH] zynq: Fix elf header generation
2014-02-04 15:59 [U-Boot] [PATCH] zynq: Fix elf header generation Michal Simek
@ 2014-02-04 20:35 ` Tom Rini
2014-02-05 7:07 ` Michal Simek
2014-02-05 3:00 ` Masahiro Yamada
1 sibling, 1 reply; 5+ messages in thread
From: Tom Rini @ 2014-02-04 20:35 UTC (permalink / raw)
To: u-boot
On Tue, Feb 04, 2014 at 04:59:45PM +0100, Michal Simek wrote:
> This patch is here because of:
> "arm: keep all sections in ELF file"
> (sha1: 47ed5dd031d7d2c587e6afd386e79ccec1a1b7f7)
>
> Our tools expect to have elf with only LOAD header.
> Without this fix also PHDR, INTERP and DYNAMIC headers
> are available in ELF.
>
> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
[snip]
Two things..
> + /*
> + * Deprecated: this MMU section is used by pxa at present but
> + * should not be used by new boards/CPUs.
> + */
> + . = ALIGN(4096);
> + .mmutable : {
> + *(.mmutable)
> + }
You don't need this do you? If not, drop it..
[snip]
> + /DISCARD/ : { *(.dynsym) }
> + /DISCARD/ : { *(.dynbss*) }
> + /DISCARD/ : { *(.dynstr*) }
> + /DISCARD/ : { *(.dynamic*) }
> + /DISCARD/ : { *(.plt*) }
> + /DISCARD/ : { *(.interp*) }
> + /DISCARD/ : { *(.gnu*) }
> + /DISCARD/ : { *(.ARM.exidx*) }
> + /DISCARD/ : { *(.gnu.linkonce.armexidx.*) }
Here is the difference between your linker script and the main ARM one.
Please add a comment block that explains that you need to discard more
sections because the user is expected to pass this image on to tools
that require them to be dropped so it's clear why there is this delta
between the scripts. Thanks!
--
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20140204/d3e90e90/attachment.pgp>
^ permalink raw reply [flat|nested] 5+ messages in thread
* [U-Boot] [PATCH] zynq: Fix elf header generation
2014-02-04 15:59 [U-Boot] [PATCH] zynq: Fix elf header generation Michal Simek
2014-02-04 20:35 ` Tom Rini
@ 2014-02-05 3:00 ` Masahiro Yamada
2014-02-05 7:06 ` Michal Simek
1 sibling, 1 reply; 5+ messages in thread
From: Masahiro Yamada @ 2014-02-05 3:00 UTC (permalink / raw)
To: u-boot
Hello Michal,
> @@ -224,4 +226,5 @@
> #define CONFIG_CMD_MII
> #define CONFIG_CMD_TFTPPUT
>
> +
> #endif /* __CONFIG_ZYNQ_COMMON_H */
> --
> 1.8.2.3
>
Please do not double empty lines.
Best Regards
Masahiro Yamada
^ permalink raw reply [flat|nested] 5+ messages in thread
* [U-Boot] [PATCH] zynq: Fix elf header generation
2014-02-05 3:00 ` Masahiro Yamada
@ 2014-02-05 7:06 ` Michal Simek
0 siblings, 0 replies; 5+ messages in thread
From: Michal Simek @ 2014-02-05 7:06 UTC (permalink / raw)
To: u-boot
On 02/05/2014 04:00 AM, Masahiro Yamada wrote:
> Hello Michal,
>
>
>> @@ -224,4 +226,5 @@
>> #define CONFIG_CMD_MII
>> #define CONFIG_CMD_TFTPPUT
>>
>> +
>> #endif /* __CONFIG_ZYNQ_COMMON_H */
>> --
>> 1.8.2.3
>>
>
>
> Please do not double empty lines.
Sure.
Just sent v2.
Thanks,
Michal
--
Michal Simek, Ing. (M.Eng), OpenPGP -> KeyID: FE3D1F91
w: www.monstr.eu p: +42-0-721842854
Maintainer of Linux kernel - Microblaze cpu - http://www.monstr.eu/fdt/
Maintainer of Linux kernel - Xilinx Zynq ARM architecture
Microblaze U-BOOT custodian and responsible for u-boot arm zynq platform
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 263 bytes
Desc: OpenPGP digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20140205/3e6d4d4c/attachment.pgp>
^ permalink raw reply [flat|nested] 5+ messages in thread
* [U-Boot] [PATCH] zynq: Fix elf header generation
2014-02-04 20:35 ` Tom Rini
@ 2014-02-05 7:07 ` Michal Simek
0 siblings, 0 replies; 5+ messages in thread
From: Michal Simek @ 2014-02-05 7:07 UTC (permalink / raw)
To: u-boot
On 02/04/2014 09:35 PM, Tom Rini wrote:
> On Tue, Feb 04, 2014 at 04:59:45PM +0100, Michal Simek wrote:
>
>> This patch is here because of:
>> "arm: keep all sections in ELF file"
>> (sha1: 47ed5dd031d7d2c587e6afd386e79ccec1a1b7f7)
>>
>> Our tools expect to have elf with only LOAD header.
>> Without this fix also PHDR, INTERP and DYNAMIC headers
>> are available in ELF.
>>
>> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
> [snip]
>
> Two things..
>
>> + /*
>> + * Deprecated: this MMU section is used by pxa at present but
>> + * should not be used by new boards/CPUs.
>> + */
>> + . = ALIGN(4096);
>> + .mmutable : {
>> + *(.mmutable)
>> + }
>
> You don't need this do you? If not, drop it..
I don't need it.
>
> [snip]
>> + /DISCARD/ : { *(.dynsym) }
>> + /DISCARD/ : { *(.dynbss*) }
>> + /DISCARD/ : { *(.dynstr*) }
>> + /DISCARD/ : { *(.dynamic*) }
>> + /DISCARD/ : { *(.plt*) }
>> + /DISCARD/ : { *(.interp*) }
>> + /DISCARD/ : { *(.gnu*) }
>> + /DISCARD/ : { *(.ARM.exidx*) }
>> + /DISCARD/ : { *(.gnu.linkonce.armexidx.*) }
>
> Here is the difference between your linker script and the main ARM one.
> Please add a comment block that explains that you need to discard more
> sections because the user is expected to pass this image on to tools
> that require them to be dropped so it's clear why there is this delta
> between the scripts. Thanks!
Fixed in v2.
Thanks,
Michal
--
Michal Simek, Ing. (M.Eng), OpenPGP -> KeyID: FE3D1F91
w: www.monstr.eu p: +42-0-721842854
Maintainer of Linux kernel - Microblaze cpu - http://www.monstr.eu/fdt/
Maintainer of Linux kernel - Xilinx Zynq ARM architecture
Microblaze U-BOOT custodian and responsible for u-boot arm zynq platform
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 263 bytes
Desc: OpenPGP digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20140205/cfaaa811/attachment.pgp>
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2014-02-05 7:07 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-02-04 15:59 [U-Boot] [PATCH] zynq: Fix elf header generation Michal Simek
2014-02-04 20:35 ` Tom Rini
2014-02-05 7:07 ` Michal Simek
2014-02-05 3:00 ` Masahiro Yamada
2014-02-05 7:06 ` Michal Simek
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox