[U-Boot] [PATCH] i.MX6 nand bootupdate, reworked

Jagan Teki jagannadh.teki at gmail.com
Wed Sep 28 20:52:02 CEST 2016


On Wed, Sep 28, 2016 at 10:47 PM, Sergey Kubushyn <ksi at koi8.net> wrote:
> On Wed, 28 Sep 2016, Jagan Teki wrote:
>
>> On Sun, Jun 19, 2016 at 3:14 AM, Sergey Kubushyn <ksi at koi8.net> wrote:
>>>
>>> Here is yet another version, diff made against latest u-boot-imx master.
>>>
>>> Actual code moved from drivers/mtd/nand to /arch/arm/imx-common, some
>>> functions renamed. No other changes.
>>
>>
>>
>> <snip>
>>
>>>         return CMD_RET_USAGE;
>>>  }
>>> @@ -766,6 +816,17 @@ static char nand_help_text[] =
>>>         "    'addr', skipping bad blocks and dropping any pages at the
>>> end\n"
>>>         "    of eraseblocks that contain only 0xFF\n"
>>>  #endif
>>> +#ifdef CONFIG_CMD_NAND_BOOTUPDATE
>>> +       "nand bootupdate - [addr] [size]\n"
>>
>>
>> What is the addr here the nand offset or the ddr addr? I tried of
>> doing the same but unable to boot any help?
>
>
> It is where the actual U-Boot image is loaded in RAM. If "nand bootupdate"
> is done right after reading U-Boot binary into RAM (e.g. with ext4load)
> those can be both omitted.
>
> As a matter of fact I'm finishing a bunch of changes to U-Boot, including
> that bootupdate command and 2 new boards right now and going to submit all
> that either tonight or tomorrow.
>
> NAND bootupdate works like a charm here and we do actually use it in actual
> production environment with both Linux and Android; firmware updates do
> update U-Boot itself as a part of regular network (or OTA how it is called
> in Android) updates.
>
> Will try to write a small README file on that if times permitted.

True, good to have.

>
> Please note that it has been only tested on i.MX6 (don't have anything else
> here; all our boards are i.MX6D/Q/DL.) We do not use SPL.
>
> As of your case I'm not exactly sure what you are trying to achieve. That
> entire NAND boot thing with all FCB/DBBT/whatever only applies to INITIAL
> boot off of raw NAND device. It allows to boot either the full U-Boot or
> SPL using i.MX6 NAND ROM boot routine that reads that FCB and whatever
> else then loads actual binary (either U-Boot or SPL or whatever) according
> to information in that FCB and runs it.
>
> If you are booting your SPL off of some other media and then trying to load
> second stage U-Boot from raw NAND you don't need all that FCB kabang. The
> DCB part (if U-Boot is built as i.MX6 image) is also not needed so it can
> be stripped or skipped. However your SPL must properly configure NAND
> itself so it would be able to read from it and it should include all stuff
> required to actually read data from NAND.
>
> The FCB/DBBT stuff is only needed for initial boot off of raw NAND. If you
> are going to boot off of NAND and want to have your U-Boot in NAND (that is
> the only logical use of NAND for U-Boot) I can not see any reason for going
> SPL road but you might have your own reasons that I don't know.

Since ROM expects the FCB/DBBT this tool adding that so I updated SPL
and written u-boot-dtb.img using 'nand write'

thanks!
-- 
Jagan Teki
Free Software Engineer | www.openedev.com
U-Boot, Linux | Upstream Maintainer
Hyderabad, India.


More information about the U-Boot mailing list