public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
From: Albert ARIBAUD <albert.u.boot@aribaud.net>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v9 18/30] nand: mxc: Switch NAND SPL to generic SPL
Date: Wed, 3 Apr 2013 10:51:00 +0200	[thread overview]
Message-ID: <20130403105100.27dcdd74@lilith> (raw)
In-Reply-To: <20130403100557.763e5120@lilith>

On Wed, 3 Apr 2013 10:05:57 +0200, Albert ARIBAUD
<albert.u.boot@aribaud.net> wrote:

> > The resulting HEAD is identical to yours, except for
> > board/freescale/mx31ads/u-boot.lds in which you had removed the following
> > unrelated line for 30/30:
> >         __bss_end = .;
> > 
> > Regarding this line, it is also present in a few other .lds, as well as the
> > following ones:
> >         KEEP(*(.__bss_start));
> >         KEEP(*(__bss_end));
> > 
> > However, the end section is named .__bss_end in arch/arm/lib/bss.c, so there is
> > perhaps something wrong here, unless you did that on purpose because of the
> > __bss_end test at the end of the linker script. I had noticed that, but I let
> > you handle it. If something needs to be changed here, please do it after my
> > series if possible in order to avoid a v11 because of newer rebase conflicts. ;)
> 
> Normally, defining __bss_end symbols in the ARM lds files has become 
> unnecessary as arch/arm/lib/bss.c now defines then (and in so doing
> avoids generating ugly R_ARM_ABS32 relocation records) so yes, the line
> removal was intentional, but indeed unrelated to your series.
> 
> As for the missing period in the .__bss_end input section specification,
> thanks for bringing this to my attention. I'll give it a look at once
> as this could lead to tricky bugs popping up...

Alright, now that the coffee shot has reached full effect, I think I
understand what is going on and indeed that has to be fixed although it
most certainly did not cause any issue.

In my commit 3ebd1cbc, where the whole bss.c system was put in place,
the .__bss_end__ input section specification had the leading period and
was thus placed correctly, as was the compiler-generated __bss_end__
symbol from bss.c.

Later, when Tom's commit 0ce033d2 manually merged Simon's work turning
all __bss_end__ occurrences into __bss_end, two things happened:

1) both the bss.c file and ARM *.lds files then defined __bss_end.

2) the leading period in .__bss_end__ was lost in the conversion.

This led to the compiler-generated __bss_end section being mapped away
from the whole BSS area -- *before* it, actually, which would have been
catastrophic... if the definition for __bss_end from the lds files had
not taken precedence over that from bss.c, thus preserving the correct
value and semantics for the symbol.

In other words, the first issue actually countered the second one, and
both stayed hidden as the code continued running as expected.

But this has to be fixed, because it causes __bss_end references to
generate R_ARM_ABS32 relocation records again, which must be averted
(it might be a good idea to add a build-time check to avoid any new
R_ARM_ABS32 from creeping up in the future).

I'll send out a patch to be taken in 2013.04, in which I'll reintroduce
the leading periods in .__bss_end sections, and rename the linker
symbols used for overlay mapping (and make them non-exported so that
the code won't mistakenly reference them).

... and indeed I won't ask for a V10 rebase for it :) -- either V10
gets in first, or if my patch gets in first, I'll handle rebasing
V10 myself.

Thanks Beno?t for spotting this!

Amicalement,
-- 
Albert.

  reply	other threads:[~2013-04-03  8:51 UTC|newest]

Thread overview: 95+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-03-06 18:59 [U-Boot] [PATCH v9 01/30] mtd: nand: Introduce CONFIG_SYS_NAND_BUSWIDTH_16BIT Benoît Thébaudeau
2013-03-06 18:59 ` [U-Boot] [PATCH v9 02/30] mtd: nand: mxc_nand: Fix is_16bit_nand() Benoît Thébaudeau
2013-03-06 18:59 ` [U-Boot] [PATCH v9 03/30] nand: mxc: Prepare to add support for i.MX5 Benoît Thébaudeau
2013-03-06 18:59 ` [U-Boot] [PATCH v9 04/30] nand: mxc: Add " Benoît Thébaudeau
2013-03-06 18:59 ` [U-Boot] [PATCH v9 05/30] imx: mx5: lowlevel_init: Simplify code Benoît Thébaudeau
2013-03-06 18:59 ` [U-Boot] [PATCH v9 06/30] imx: mx53ard: Add support for NAND Flash Benoît Thébaudeau
2013-03-06 18:59 ` [U-Boot] [PATCH v9 07/30] nand: mxc: Fix debug trace in mxc_nand_read_oob_syndrome() Benoît Thébaudeau
2013-03-06 18:59 ` [U-Boot] [PATCH v9 08/30] nand: mxc: Use appropriate page number in syndrome functions Benoît Thébaudeau
2013-03-06 18:59 ` [U-Boot] [PATCH v9 09/30] arm: start.S: Fix _TEXT_BASE for SPL Benoît Thébaudeau
2013-03-06 18:59 ` [U-Boot] [PATCH v9 10/30] arm: relocate_code() is no longer noreturn Benoît Thébaudeau
2013-03-06 18:59 ` [U-Boot] [PATCH v9 11/30] arm1136: Remove redundant relocate_code() return Benoît Thébaudeau
2013-03-06 18:59 ` [U-Boot] [PATCH v9 12/30] arm: relocate_code(): Remove useless relocation offset computation Benoît Thébaudeau
2013-03-06 18:59 ` [U-Boot] [PATCH v9 13/30] arm: relocate_code(): Use __image_copy_end for end of relocation Benoît Thébaudeau
2013-03-06 18:59 ` [U-Boot] [PATCH v9 14/30] arm: crt0.S: Remove bogus .globl Benoît Thébaudeau
2013-03-06 18:59 ` [U-Boot] [PATCH v9 15/30] autoconfig.mk: Make it possible to define configs from other configs Benoît Thébaudeau
2013-03-06 21:06   ` Tom Rini
2013-03-07  6:57   ` Wolfgang Denk
2013-03-07 11:38     ` Benoît Thébaudeau
2013-03-07 17:23       ` Benoît Thébaudeau
2013-03-08  3:29     ` Marek Vasut
2013-03-08  5:25       ` Wolfgang Denk
2013-03-08 11:57         ` Benoît Thébaudeau
2013-03-08 14:08         ` Marek Vasut
2013-03-08 14:28           ` Wolfgang Denk
2013-03-08 14:40             ` Tom Rini
2013-03-08 14:54               ` Fabio Estevam
2013-03-13  8:01                 ` Stefano Babic
2013-03-13 13:35                   ` Benoît Thébaudeau
2013-03-13 13:56                     ` Tom Rini
2013-03-13 18:12                       ` Tom Rini
2013-03-16 10:54                         ` Albert ARIBAUD
2013-03-13 16:44                     ` Stefano Babic
2013-03-08 15:16               ` Wolfgang Denk
2013-03-08 12:14       ` Benoît Thébaudeau
2013-03-08 14:17         ` Marek Vasut
2013-03-06 18:59 ` [U-Boot] [PATCH v9 16/30] Makefile: Change CONFIG_SPL_PAD_TO to image offset Benoît Thébaudeau
2013-03-06 18:59 ` [U-Boot] [PATCH v9 17/30] imx: Fix automatic make targets for imx images Benoît Thébaudeau
2013-03-06 18:59 ` [U-Boot] [PATCH v9 18/30] nand: mxc: Switch NAND SPL to generic SPL Benoît Thébaudeau
2013-03-31 17:30   ` Albert ARIBAUD
2013-04-01  0:30     ` Benoît Thébaudeau
2013-04-01  8:26       ` Albert ARIBAUD
2013-04-01 13:13         ` Benoît Thébaudeau
2013-04-01 15:53           ` Albert ARIBAUD
2013-04-03  6:30             ` Benoît Thébaudeau
2013-04-03  8:05               ` Albert ARIBAUD
2013-04-03  8:51                 ` Albert ARIBAUD [this message]
2013-04-09 17:02                 ` Benoît Thébaudeau
2013-04-03 21:01               ` Fabio Estevam
2013-04-03 21:42                 ` Benoît Thébaudeau
2013-04-08 18:47                   ` Benoît Thébaudeau
2013-04-08 18:55                     ` Fabio Estevam
2013-04-09 12:30                       ` Fabio Estevam
2013-04-09 12:46                         ` Fabio Estevam
2013-04-09 14:32                           ` Benoît Thébaudeau
2013-04-09 14:33                             ` Benoît Thébaudeau
2013-04-09 14:38                           ` Benoît Thébaudeau
2013-04-09 15:04                             ` Benoît Thébaudeau
2013-04-09 15:12                               ` Benoît Thébaudeau
2013-04-09 16:40                             ` Fabio Estevam
2013-04-09 16:56                               ` Benoît Thébaudeau
2013-04-09 17:37                                 ` Benoît Thébaudeau
2013-04-09 18:07                                   ` Fabio Estevam
2013-04-09 18:10                                     ` Benoît Thébaudeau
2013-04-09 18:35                                       ` Fabio Estevam
2013-04-09 18:31                                         ` Benoît Thébaudeau
2013-04-04  9:07               ` Albert ARIBAUD
2013-04-04 14:05                 ` Benoît Thébaudeau
2013-04-04 14:16                   ` Albert ARIBAUD
2013-03-06 18:59 ` [U-Boot] [PATCH v9 19/30] arm926ejs: Remove deprecated and now unused NAND SPL Benoît Thébaudeau
2013-03-06 18:59 ` [U-Boot] [PATCH v9 20/30] arm: Remove unused relocate_code() parameters Benoît Thébaudeau
2013-03-06 18:59 ` [U-Boot] [PATCH v9 21/30] Makefile: Move SHELL setup to config.mk Benoît Thébaudeau
2013-03-06 18:59 ` [U-Boot] [PATCH v9 22/30] .gitignore: Add /SPL Benoît Thébaudeau
2013-03-06 18:59 ` [U-Boot] [PATCH v9 23/30] imx: Add u-boot-with-spl.imx make target Benoît Thébaudeau
2013-03-06 18:59 ` [U-Boot] [PATCH v9 24/30] imx: Add u-boot-with-nand-spl.imx " Benoît Thébaudeau
2013-03-06 18:59 ` [U-Boot] [PATCH v9 25/30] arm: Remove support for smdk6400 Benoît Thébaudeau
2013-03-21 21:43   ` Lukasz Majewski
2013-03-21 22:04     ` Benoît Thébaudeau
2013-03-22 10:12       ` Lukasz Majewski
2013-03-22 11:36         ` Benoît Thébaudeau
2013-03-22 12:21           ` Tom Rini
2013-03-22 14:20             ` Lukasz Majewski
2013-03-06 18:59 ` [U-Boot] [PATCH v9 26/30] Revert "mkconfig: start deprecating Makefile config targets" Benoît Thébaudeau
2013-03-06 18:59 ` [U-Boot] [PATCH v9 27/30] arm: Remove support for unused s3c64xx Benoît Thébaudeau
2013-03-06 18:59 ` [U-Boot] [PATCH v9 28/30] arm: Remove deprecated and now unused NAND SPL Benoît Thébaudeau
2013-03-06 18:59 ` [U-Boot] [PATCH v9 29/30] arm1176: Remove unused MMU setup from start.S Benoît Thébaudeau
2013-03-06 18:59 ` [U-Boot] [PATCH v9 30/30] arm: Make all linker scripts compatible with per-symbol sections Benoît Thébaudeau
2013-03-06 19:25 ` [U-Boot] [PATCH v9 01/30] mtd: nand: Introduce CONFIG_SYS_NAND_BUSWIDTH_16BIT Scott Wood
2013-03-14 11:51 ` marcio at netopen.com.br
2013-03-14 12:39   ` Fabio Estevam
2013-03-28  9:55 ` Albert ARIBAUD
2013-03-28 14:37   ` Benoît Thébaudeau
2013-03-28 15:16     ` Albert ARIBAUD
2013-03-28 16:33       ` Benoît Thébaudeau
2013-03-30  8:52 ` Albert ARIBAUD
2013-03-30 15:42   ` Benoît Thébaudeau

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=20130403105100.27dcdd74@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox