All of lore.kernel.org
 help / color / mirror / Atom feed
From: Stefano Babic <sbabic@denx.de>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH] wandboard: move environment partition farther from u-boot.img
Date: Tue, 19 Jul 2016 11:17:29 +0200	[thread overview]
Message-ID: <578DF029.9060800@denx.de> (raw)
In-Reply-To: <CAOMZO5ApbdSShhKKu2kOfWBGBODDZUphQAXAh80Jq5OxkvxcRw@mail.gmail.com>

On 18/07/2016 15:28, Fabio Estevam wrote:
> Hi Stefano,
> 
> 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>
> 
> Any comments about this one? Could it be applied?


No, it is ok, I will apply it.

Regards,
Stefano

-- 
=====================================================================
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de
=====================================================================

      reply	other threads:[~2016-07-19  9:17 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
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 [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=578DF029.9060800@denx.de \
    --to=sbabic@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 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.