public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
From: Marek Vasut <marex@denx.de>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH] MIPS: provide a default u-boot-spl.lds
Date: Thu, 26 May 2016 14:08:26 +0200	[thread overview]
Message-ID: <5746E73A.90902@denx.de> (raw)
In-Reply-To: <1464263014-7622-1-git-send-email-daniel.schwierzeck@gmail.com>

On 05/26/2016 01:43 PM, Daniel Schwierzeck wrote:
> Provide a default linker script for SPL binaries. Start address
> and size of text section and BSS section are configurable. All
> sections are arranged in a way that only relevant sections are
> kept in the code section for maximum size reduction. All other
> sections are kept but moved outside the code section to help
> with debugging.
> 
> Signed-off-by: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>

I'm worried this will blow when you enable DM in SPL, since DM uses
special section(s) to keep the driver linked lists in. You'll probably
need to add something like KEEP(*(SORT(.u_boot_list*))); somewhere in
there.

> ---
> 
>  arch/mips/cpu/u-boot-spl.lds | 83 ++++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 83 insertions(+)
>  create mode 100644 arch/mips/cpu/u-boot-spl.lds
> 
> diff --git a/arch/mips/cpu/u-boot-spl.lds b/arch/mips/cpu/u-boot-spl.lds
> new file mode 100644
> index 0000000..e18074b
> --- /dev/null
> +++ b/arch/mips/cpu/u-boot-spl.lds
> @@ -0,0 +1,83 @@
> +/*
> + * SPDX-License-Identifier:	GPL-2.0+
> + */
> +
> +MEMORY { .spl_mem : ORIGIN = CONFIG_SPL_TEXT_BASE, \
> +		LENGTH = CONFIG_SPL_MAX_SIZE }
> +MEMORY { .bss_mem : ORIGIN = CONFIG_SPL_BSS_START_ADDR, \
> +		LENGTH = CONFIG_SPL_BSS_MAX_SIZE }
> +
> +OUTPUT_ARCH(mips)
> +ENTRY(_start)
> +SECTIONS
> +{
> +	. = 0x00000000;
> +
> +	. = ALIGN(4);
> +	.text : {
> +		*(.text*)
> +	} > .spl_mem
> +
> +	. = ALIGN(4);
> +	.rodata : {
> +		*(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
> +	} > .spl_mem
> +
> +	. = ALIGN(4);
> +	.data : {
> +		*(SORT_BY_ALIGNMENT(.data*))
> +		*(SORT_BY_ALIGNMENT(.sdata*))
> +	} > .spl_mem
> +
> +	. = ALIGN(4);
> +	__image_copy_end = .;
> +
> +	.bss (NOLOAD) : {
> +		__bss_start = .;
> +		*(.bss*)
> +		*(.sbss*)
> +		*(COMMON)
> +		. = ALIGN(4);
> +		__bss_end = .;
> +	} > .bss_mem
> +
> +	.rel.dyn (NOLOAD) : {
> +		*(.rel.dyn)
> +	}
> +
> +	.dynsym : {
> +		*(.dynsym)
> +	}
> +
> +	.dynbss : {
> +		*(.dynbss)
> +	}
> +
> +	.dynstr : {
> +		*(.dynstr)
> +	}
> +
> +	.dynamic : {
> +		*(.dynamic)
> +	}
> +
> +	.plt : {
> +		*(.plt)
> +	}
> +
> +	.interp : {
> +		*(.interp)
> +	}
> +
> +	.gnu : {
> +		*(.gnu*)
> +	}
> +
> +	.MIPS.stubs : {
> +		*(.MIPS.stubs)
> +	}
> +
> +	.hash : {
> +		*(.hash)
> +	}
> +}
> 


-- 
Best regards,
Marek Vasut

  reply	other threads:[~2016-05-26 12:08 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-05-26 11:43 [U-Boot] [PATCH] MIPS: provide a default u-boot-spl.lds Daniel Schwierzeck
2016-05-26 12:08 ` Marek Vasut [this message]
2016-05-26 12:42   ` Daniel Schwierzeck
2016-05-26 12:47     ` Marek Vasut
2016-05-26 13:28 ` [U-Boot] [PATCH v2] " Daniel Schwierzeck
2016-05-26 15:17   ` Marek Vasut
2016-05-27 10:03     ` Daniel Schwierzeck
2016-05-27 12:44       ` Marek Vasut
2016-05-30  9:48   ` Daniel Schwierzeck

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=5746E73A.90902@denx.de \
    --to=marex@denx.de \
    --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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox