Quantcast
Channel: Processors forum - Recent Threads
Viewing all articles
Browse latest Browse all 17527

nand write u-boot from u-boot itself or linux

$
0
0

Hi, I'm working with lcdk developer kit. My scope will be to prepare an enviroment where it will be possible to live upgrade everything inside the board at runtime.

So I neet to be able to update u-boot, kernel and rootfs.

I'm able to update kernel and rootfs from linux and u-boot but I'm not able to upgrade u-boot.

I'm using u-boot 2012.04.01 (caming from ti) with patch for ECC, so now I have 

static struct nand_ecclayout nand_davinci_4bit_layout_oobfirst = {
#if defined(CONFIG_SYS_NAND_PAGE_2K)
.eccbytes = 40,
.eccpos = {6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
},
.oobfree = {{2, 4}, {16, 6}, {32, 6}, {48, 6}},

I have also change the board configuration with

#undef CONFIG_SYS_NAND_HW_ECC
#define CONFIG_SYS_NAND_4BIT_HW_ECC

and on linux eccbit is set to 4 (instead 1).

I patch also linux kernel (3.18.x) to use the same lcclayout.

Now I'm albe to flash u-boot with

./sfh_OMAP-L138.exe -flash_noubl -targetType OMAPL138_LCDK -flashType NAND -p /dev/ttyUSB4 -v /home/mdionisio/u-boot.ais

but and dump the u-boot.ais from linux without any ecc error. But if I try to write again u-boot.ais to the nand from a running linux the board does not boot any more (same issue if I do the same from u-boot).

The only working way is to dump the NAND and write it again. So it seams that there is someting more in the NAND than only the u-boot.ais file.

Someone can help me  to undestand the issue?

I have done some test.

TEST1:

1. flash with sfh_OMAP-L138.exe

2. start linux. dump u-boot partition (with and without oob) and check if the first x byte is equal to the u-boot.ais file

3. erase all u-boot partition and reflash (using linux nandwrite tool with padding option) u-boot.ais 

4. dump again u-boot partition to check if u-boot.ais file well writed

5. result is everything seams well writed but the board does not boot again

TEST2:

1. flash with sfh_OMAP-L138.exe

2. start linux. dump u-boot partition (with and without oob) and check if the first x byte is equal to the u-boot.ais file

3. erase all u-boot partition and reflash (using linux nandwrite tool) the dumped file (with and without oob) and the result is OK


Viewing all articles
Browse latest Browse all 17527

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>