mail archive of the barebox mailing list
 help / color / mirror / Atom feed
From: Trent Piepho <tpiepho@kymetacorp.com>
To: Sascha Hauer <s.hauer@pengutronix.de>
Cc: Andrey Smirnov <andrew.smirnov@gmail.com>,
	"barebox@lists.infradead.org" <barebox@lists.infradead.org>,
	Steffen Trumtrar <s.trumtrar@pengutronix.de>,
	Tim Sander <tim@krieglstein.org>
Subject: Re: [PATCH v7] Terasic DE0-Nano-SoC: add support
Date: Fri, 26 Feb 2016 20:39:37 +0000	[thread overview]
Message-ID: <1456519213.25961.46.camel@rtred1test09.kymeta.local> (raw)
In-Reply-To: <20160226072506.GN3939@pengutronix.de>

On Fri, 2016-02-26 at 08:25 +0100, Sascha Hauer wrote:
> BTW I noticed the xload defconfig does not build anymore with this patch
> applied because the image gets too big. I searched for the reason at got
> a step closer. The SDRAM sequencer code is compiled into the image
> multiple times, one time for each board. The intention was that the
> linker throws away the unused copies via -ffunction-section and
> --gc-sections. Unfortunately this does not work because the functions in
> the different copies all end up with the same name. So for example we
> have mem_precharge_and_activate() three times in the image. Only one
> version is used, but the others can't be thrown away because they are in
> the same section.

There are two possible optimization here.

As you say, if the two copies where in different sections, then all but
one could be GCed by the linker, as only one will be in the call tree
starting from the entry function for the board specific pbl being
linked.

But it's also the case that text of all the copies of
mem_precharge_and_activate() is exactly the same.  And so they could
also be merged as identical, i.e. via ICF.

I have an xloader that supports four socfpga board variants by
exploiting the fact that most of the "board specific" sequencer, scan
chain, pinmux, etc. data is in fact identical among all the board
variants.  I can't use GC for this, as all the board data is referenced
in the single xload image which supports all the boards.
_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

  parent reply	other threads:[~2016-02-26 20:40 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-02-12 13:08 [PATCH v5] " Tim Sander
2016-02-15  6:30 ` Sascha Hauer
2016-02-18 16:14 ` Sascha Hauer
2016-02-25 10:18   ` [PATCH v6] " Tim Sander
2016-02-25 10:29     ` [PATCH v7] " Tim Sander
2016-02-25 10:42       ` Steffen Trumtrar
2016-02-26  7:25       ` Sascha Hauer
2016-02-26  8:29         ` Tim Sander
2016-02-26 20:39         ` Trent Piepho [this message]
2016-03-01  9:16         ` Sascha Hauer

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=1456519213.25961.46.camel@rtred1test09.kymeta.local \
    --to=tpiepho@kymetacorp.com \
    --cc=andrew.smirnov@gmail.com \
    --cc=barebox@lists.infradead.org \
    --cc=s.hauer@pengutronix.de \
    --cc=s.trumtrar@pengutronix.de \
    --cc=tim@krieglstein.org \
    /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