All of lore.kernel.org
 help / color / mirror / Atom feed
From: Alexey Brodkin <Alexey.Brodkin@synopsys.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH] wandboard: move environment partition farther from u-boot.img
Date: Mon, 11 Jul 2016 06:51:08 +0000	[thread overview]
Message-ID: <1468219792.13451.7.camel@synopsys.com> (raw)
In-Reply-To: <CAP9ODKqD76HGEHn9qCs_EA+9_mWw8zB3ycfD9ZEKmJtAryZ4SQ@mail.gmail.com>

Hi Otavio,

On Sat, 2016-07-09 at 10:02 -0300, Otavio Salvador wrote:
> On Sat, Jul 9, 2016 at 9:42 AM, Alexey Brodkin
> <Alexey.Brodkin@synopsys.com> wrote:
> > 
> > Recently I started to notice that u-boot.img built for Wandboard
> > by some toolchains becomes so large that it basically overlaps with
> > U-Boot environment area on SD-card.
> > 
> > According to
> > http://wiki.wandboard.org/index.php/Boot-process#sdcard_boot_data_layout
> > Wandboard's SD-card layout is as follows:
> > ------------------------------>8---------------------------
> > ==========================================================
> > 1. 0x00000000???????????Reserved For MBR
> > 2. 0x00000200???512?????Secondary Image Table (optional)
> > 3. 0x00000400???1024????uBoot Image (Starting From IVT)
> > 4. 0x00060000???393216??start of uboot env (size:8k)
> > 5. 0x00062000???????????end of uboot env
> > 6. 0x00100000???1048576 Linux kernel start
> > 7. 0x0076AC00???7777280 start of partition 1
> > ------------------------------>8---------------------------
> > 
> > So for U-Boot we have 383kB (392192 bytes).
> > 
> > But in up to date U-Boot for Wandboard we build separately
> > ?a) SPL
> > ?b) u-boot.img
> > 
> > which gives us a bit more detailed SD-card layout:
> > ------------------------------>8---------------------------
> > ==========================================================
> > 1. 0x00000000???????????Reserved For MBR
> > 2. 0x00000200???512?????Secondary Image Table (optional)
> > 3. 0x00000400???1024????SPL
> > 4. 0x00011400???70656???u-boot.img
> > 5. 0x00060000???393216??start of uboot env (size:8k)
> > 6. 0x00062000???????????end of uboot env
> > ...
> > ------------------------------>8---------------------------
> > 
> > From that layout we may calculate amount of space reserved for
> > u-boot.img. It's just 315kb (322560 bytes).
> > 
> > Now if I build U-Boot with Sourcery CodeBench ARM 2014.05 produced
> > u-boot.img is already more than we expected
> > (323840 bytes instead of "< 322560"):
> > ------------------------------>8---------------------------
> > ls -la u-boot.img
> > -rw-rw-r-- 1 user user 323840 Jul??5 07:38 u-boot.img
> > ------------------------------>8---------------------------
> > 
> > Funny enough if I rebuild U-Boot with ARM toolchain available in
> > my Fedora 23 distro u-boot.img becomes a little bit smaller:
> > ------------------------------>8---------------------------
> > ls -la u-boot.img
> > -rw-rw-r-- 1 user user 322216 Jul??5 07:39 u-boot.img
> > ------------------------------>8---------------------------
> > 
> > What's worse this problem might not affect people most of the time
> > because what happens people would just copy u-boot.img on SD-card and
> > live in happiness with it... well until somebody attempts to save
> > environment in U-Boot with "saveenv" command which will simply
> > overwrite the very end of u-boot.img.
> > That will lead to unusable SD-card until user dd u-boot.img on
> > SD-card again.
> > 
> > I may foresee this issue in the future to become more visible once we
> > add more features in U-Boot for Wandboard or just existing code base
> > becomes bulkier and people will consistently get larger u-boot.img
> > files produced.
> > 
> > IMHO there's an obvious solution for all that - just move U-Boot's env
> > to the very end of the gap between U-Boot and the first real partition
> > on the SD-card. This patch will follow
> > 8fb9eea5653796 ("mx6sabre_common: Fix U-Boot corruption after 'saveenv'").
> > So env is still not in the very end of the gap (obviously 256kb is way
> > too much for U-Boot's env) but at least we have now the same
> > partitioning for i.MX6 boards.
> > 
> > Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
> > Cc: Fabio Estevam <fabio.estevam@nxp.com>
> > Cc: Otavio Salvador <otavio@ossystems.com.br>
> > Cc: Peter Robinson <pbrobinson@gmail.com>
> > Cc: Tom Rini <trini@konsulko.com>
> > Cc: Peter Korsgaard <peter@korsgaard.com>
> > Cc: Wolfgang Denk <wd@denx.de>
>
> Couldn't this be done on the common header?

It could be done but that's not so straight-forward.
See not all boards that use?"mx6_common.h" store U-Boot's environment
on SD card. There're ones that put env in SPI flash ("cm_fx6", "aristainetos"
etc). Moreover some "include/configs/XXX.h" files put "mx6_common.h" in
the very beginning some in the middle, some in the very end. I.e. we cannot rely
on "#ifdef CONFIG_ENV_IS_IN_MMC" - it might be defined later easily.

That means if we move CONFIG_ENV_OFFSET in "mx6_common.h" we'll need to wrap
CONFIG_ENV_OFFSET on some boards with #undef to allow them to override ENV_OFFSET.

IMHO better solution would be as Tom suggested to move all ENV related things in
Kconfig and there we'll be able to handle it more gracefully.

-Alexey

  reply	other threads:[~2016-07-11  6:51 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-07-09 12:42 [U-Boot] [PATCH] wandboard: move environment partition farther from u-boot.img Alexey Brodkin
2016-07-09 13:02 ` Otavio Salvador
2016-07-11  6:51   ` Alexey Brodkin [this message]
2016-07-11 10:36     ` Otavio Salvador
2016-07-15  0:07 ` Fabio Estevam
2016-07-18 13:28 ` Fabio Estevam
2016-07-19  9:17   ` Stefano Babic

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=1468219792.13451.7.camel@synopsys.com \
    --to=alexey.brodkin@synopsys.com \
    --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.