[U-Boot] MPC8536DS SD u-boot issue

Frans Meulenbroeks fransmeulenbroeks at gmail.com
Wed Jul 28 09:56:26 CEST 2010


Dear all,

I have an issue with u-boot 2010.06 for mpc8536ds and SD card.
(actually not sure if it is specific for 2010.06).

If I try to access the SD card (a SanDisk 2GB cl2 card), from within u-boot
I often get errors.
The odd thing is that the errors are not always at the same place. Below is
a log.
As you can see from the log reading the first blocks works nicely, but at
arund block 64 things become fuzzy.
The last few tests show that sometimes it does manage to read a block
whereas the next try it might not read that block (or the other way around)

=> mmc read 0 100000 0 100

MMC read: dev # 0, block # 0, count 256 ... block read failed: -18
64 blocks read: ERROR
=> mmc read 0 100000 0 5

MMC read: dev # 0, block # 0, count 5 ... 5 blocks read: OK
=> mmc read 0 100000 0 10

MMC read: dev # 0, block # 0, count 16 ... 16 blocks read: OK
=> mmc read 0 100000 0 100

MMC read: dev # 0, block # 0, count 256 ... block read failed: -18
65 blocks read: ERROR
=> mmc read 0 100000 63 10

MMC read: dev # 0, block # 99, count 16 ... block read failed: -18
1 blocks read: ERROR
=> mmc read 0 100000 63 10

MMC read: dev # 0, block # 99, count 16 ... block read failed: -18
4 blocks read: ERROR
=> mmc read 0 100000 63 10

MMC read: dev # 0, block # 99, count 16 ... block read failed: -18
2 blocks read: ERROR
=> mmc read 0 100000 63 10

MMC read: dev # 0, block # 99, count 16 ... block read failed: -18
5 blocks read: ERROR
=> mmc read 0 100000 63 10

MMC read: dev # 0, block # 99, count 16 ... block read failed: -18
3 blocks read: ERROR


The strange thing is that the card under linux works like a charm:

root at unknown:~# dd if=/dev/mmcblk0 of=/dev/null count=200
200+0 records in
200+0 records out
102400 bytes (102 kB) copied, 0.0231558 s, 4.4 MB/s
root at unknown:~# dd if=/dev/mmcblk0 of=/dev/null count=200
200+0 records in
200+0 records out
102400 bytes (102 kB) copied, 0.0234544 s, 4.4 MB/s
root at unknown:~# dd if=/dev/mmcblk0 of=/dev/null count=200
200+0 records in
200+0 records out
102400 bytes (102 kB) copied, 0.0233649 s, 4.4 MB/s
root at unknown:~# dd if=/dev/mmcblk0 of=/dev/null count=200
200+0 records in
200+0 records out
102400 bytes (102 kB) copied, 0.0232536 s, 4.4 MB/s
root at unknown:~# dd if=/dev/mmcblk0 of=/dev/null count=1000
1000+0 records in
1000+0 records out
512000 bytes (512 kB) copied, 0.0713617 s, 7.2 MB/s
root at unknown:~# dd if=/dev/mmcblk0 of=/dev/null bs=1M
1938+1 records in
1938+1 records out
2032664576 bytes (2.0 GB) copied, 184.323 s, 11.0 MB/s


This is from a fresh boot. It might be the 2nd and further tests get data
from the buffer cache but initially the data is read from the card

Anyone a suggestion? I really would like to be able to load my kernel off
the card.
Or is there a different type/brand of card that is better suited?

Best regards, Frans.


More information about the U-Boot mailing list