Other Parts Discussed in Thread: OMAP-L138
in the past we experienced problems with SD card corruption after unexpected shutdown.
in order to solve it we did the following:
the u-boot and uImage are stored in the 8Mb external SPI nor flash.
the sd card has 2 partitions of EXT3 format
one partition has a file system gunzip image in one file.
the other partition has our application files with the executables and configuration files.
when uboot runs it load the fgunziped file system image from the SD card to /dev/ram by using a ext2load command of u-boot.
bootargs 'ip=192.168.15.248:::::eth0:on console=ttyS1,115200n8 root=/dev/ram0 rw initrd=0xc1180000,25M mem=64M'
bootcmd 'sf probe 0;sf read 0xc0700000 0x50000 0x200000;mmcinfo;ext2load mmc 0 0xc1180000 ramdisk.gz;bootm 0xc0700000'
We selected this solution to avoid reading and writing to the first partition.
in order to test this solution we are powering the system off and on.
Every second power up we get the
ST0 ERROR 40
** ext2fs_devread() read error - block
** Unable to read "ramdisk.gz" from mmc 0:1 **
it seems the SD is not corrupted because if we power off and on again it succeeds.
can any one help understand this problem ? suggest where to go from here ?
see uboot console below.
Thanks.
Roy
U-Boot 2009.11 (Nov 28 2010 - 16:30:24)
I2C: ready
DRAM: 64 MB
MMC: davinci: 0
In: serial
Out: serial
Err: serial
ARM Clock : 300000000 Hz
DDR Clock : 150000000 Hz
Net: Ethernet PHY: GENERIC @ 0x00
Hit any key to stop autoboot: 3 2 1 0
8192 KiB M25P64 at 0:0 is now current device
Device: davinci
Manufacturer ID: 1b
OEM: 534d
Name: 00000
Tran Speed: 25000000
Rd Block Len: 512
SD version 2.0
High Capacity: No
Capacity: 2002780160
Bus Width: 4-bit
Loading file "ramdisk.gz" from mmc device 0:1 (xxa1)
[ ST0 ERROR 40]
block read failed: -18
** ext2fs_devread() read error - block
** Unable to read "ramdisk.gz" from mmc 0:1 **
## Booting kernel from Legacy Image at c0700000 ...
Image Name: Linux-2.6.32-rc6
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 1932568 Bytes = 1.8 MB
Load Address: c0008000
Entry Point: c0008000
Verifying Checksum ... OK
Loading Kernel Image ... OK
OK
Starting kernel ...
Uncompressing Linux................................................................................................................................ done, booting the kernel.