All of lore.kernel.org
 help / color / mirror / Atom feed
From: Albert ARIBAUD <albert.u.boot@aribaud.net>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v2] zynq: Fix elf header generation
Date: Thu, 13 Feb 2014 15:37:17 +0100	[thread overview]
Message-ID: <20140213153717.5eceeefd@lilith> (raw)
In-Reply-To: <44be0a40d7cfef0268a3d17fec91ccf8248d5401.1391583981.git.michal.simek@xilinx.com>

Hi Michal,

On Wed,  5 Feb 2014 08:06:29 +0100, Michal Simek
<michal.simek@xilinx.com> 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>
> ---
> 
> Changes in v2:
> - Remove empty line from zynq-common.h
> - Remove PXA linker script part
> - Add comment to explain differences between our linker script
>   and ARM one
> 
> 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 | 99 ++++++++++++++++++++++++++++++++++++++
>  include/configs/zynq-common.h      |  2 +
>  2 files changed, 101 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..a68b050
> --- /dev/null
> +++ b/arch/arm/cpu/armv7/zynq/u-boot.lds
> @@ -0,0 +1,99 @@
> +/*
> + * 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 = .;
> +
> +/*
> + * 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));
> +	}
> +
> +	/*
> +	 * Zynq needs to discard more sections because the user
> +	 * is expected to pass this image on to tools for boot.bin
> +	 * generation that require them to be dropped.
> +	 */
> +	/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 5faffad..d6dc745 100644
> --- a/include/configs/zynq-common.h
> +++ b/include/configs/zynq-common.h
> @@ -218,6 +218,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>
> 
> --
> 1.8.2.3
> 
> 
Applied to u-boot-arm/master, thanks!

Amicalement,
-- 
Albert.

      reply	other threads:[~2014-02-13 14:37 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-02-05  7:06 [U-Boot] [PATCH v2] zynq: Fix elf header generation Michal Simek
2014-02-13 14:37 ` Albert ARIBAUD [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20140213153717.5eceeefd@lilith \
    --to=albert.u.boot@aribaud.net \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.