[U-Boot] MMC problem in PXA270 hardware

Hi, I am trying bring up MMC in our hardware which is running on PXA270 processor with 128 MB RAM. But i am not able to detect the SDCARD, as it is showing the invalid partition table (the dos partition magic number is not correct, it is 44aa, instead of 55 aa), what could be the problem for such a behavior ? But the same card is working properly in Linux on the same board.
Thanks & regards,

Hi,
I did some more debugging, i dumped the MBR for the sdcard, and it was proper in OS in board and PC.
Here is the dump i got in OS:
00000000 fa b8 00 10 8e d0 bc 00 b0 b8 00 00 8e d8 8e c0 |................| 00000010 fb be 00 7c bf 00 06 b9 00 02 f3 a4 ea 21 06 00 |...|.........!..| 00000020 00 be be 07 38 04 75 0b 83 c6 10 81 fe fe 07 75 |....8.u........u| 00000030 f3 eb 16 b4 02 b0 01 bb 00 7c b2 80 8a 74 01 8b |.........|...t..| 00000040 4c 02 cd 13 ea 00 7c 00 00 eb fe 00 00 00 00 00 |L.....|.........| 00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 00000060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 00000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 00000080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 00000090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 000000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 000000b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 000000c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 000000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 000000e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 000000f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 00000100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 00000110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 00000120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 00000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 00000140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 00000150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 00000160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 00000170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 00000180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 00000190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 000001a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 000001b0 00 00 00 00 00 00 00 00 25 47 05 00 00 00 00 01 |........%G......| 000001c0 01 00 06 fe 3f 7a 3f 00 00 00 7c 26 1e 00 00 00 |....?z?...|&....| 000001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 000001e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 aa |..............U.|
But in Uboot, the dump which i got MBR read was the following
0xea 0xa8 0x0 0x0 0x8e 0xc0 0xac 0x0 0xa0 0xa8 0x0 0x0 0x8e 0xc8 0x8e 0xc0 0xea 0xae 0x0 0x6c 0xae 0x0 0x6 0xa8 0x0 0x2 0xe2 0xa4 0xea 0x20 0x6 0x0 0x0 0xae 0xae 0x6 0x28 0x4 0x64 0xa 0x82 0xc6 0x0 0x80 0xee 0xee 0x6 0x64 0xe2 0xea 0x6 0xa4 0x2 0xa0 0x0 0xaa 0x0 0x6c 0xa2 0x80 0x8a 0x64 0x0 0x8a 0x4c 0x2 0xcc 0x2 0xea 0x0 0x6c 0x0 0x0 0xea 0xee 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x24 0x46 0x4 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x82 0xee 0x2e 0xc 0x2e 0x0 0x0 0x0 0x4e 0x4a 0x6 0x0 0x0 0x0 0x0 0xe 0x82 0xee 0x2e 0x48 0x8e 0x4a 0x6 0x0 0x2c 0xc8 0xa 0x0 0x0 0x0 0x0 0x4a 0x82 0xee 0x2e 0x6a 0xca 0x22 0x2 0x0 0xe0 0x2 0xc 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x44 0xaa
How can I go forward in this?

Dear Vaisakh P S,
In message 27208581.post@talk.nabble.com you wrote:
I did some more debugging, i dumped the MBR for the sdcard, and it was proper in OS in board and PC.
Here is the dump i got in OS:
00000000 fa b8 00 10 8e d0 bc 00 b0 b8 00 00 8e d8 8e c0 00000010 fb be 00 7c bf 00 06 b9 00 02 f3 a4 ea 21 06 00 00000020 00 be be 07 38 04 75 0b 83 c6 10 81 fe fe 07 75
...
But in Uboot, the dump which i got MBR read was the following
0xea 0xa8 0x0 0x0 0x8e 0xc0 0xac 0x0 0xa0 0xa8 0x0 0x0 0x8e 0xc8 0x8e 0xc0 0xea 0xae 0x0 0x6c 0xae 0x0 0x6 0xa8 0x0 0x2 0xe2 0xa4 0xea 0x20 0x6 0x0 0x0 0xae 0xae 0x6 0x28 0x4 0x64 0xa 0x82 0xc6 0x0 0x80 0xee 0xee 0x6 0x64 0xe2
Seems something is eating the 0x10 bit, so 0xFA becomes 0xEA, etc.
Check your harware, eventually a signal is not connected correctly?
Best regards,
Wolfgang Denk

On Mon, Jan 18, 2010 at 5:31 AM, Wolfgang Denk wd@denx.de wrote:
Dear Vaisakh P S,
In message 27208581.post@talk.nabble.com you wrote:
I did some more debugging, i dumped the MBR for the sdcard, and it was proper in OS in board and PC.
Here is the dump i got in OS:
00000000 fa b8 00 10 8e d0 bc 00 b0 b8 00 00 8e d8 8e c0 00000010 fb be 00 7c bf 00 06 b9 00 02 f3 a4 ea 21 06 00 00000020 00 be be 07 38 04 75 0b 83 c6 10 81 fe fe 07 75
...
But in Uboot, the dump which i got MBR read was the following
0xea 0xa8 0x0 0x0 0x8e 0xc0 0xac 0x0 0xa0 0xa8 0x0 0x0 0x8e 0xc8 0x8e 0xc0 0xea 0xae 0x0 0x6c 0xae 0x0 0x6 0xa8 0x0 0x2 0xe2 0xa4 0xea 0x20 0x6 0x0 0x0 0xae 0xae 0x6 0x28 0x4 0x64 0xa 0x82 0xc6 0x0 0x80 0xee 0xee 0x6 0x64 0xe2
Seems something is eating the 0x10 bit, so 0xFA becomes 0xEA, etc.
Actually, it looks like you're losing the 0x01 bit, too. Maybe the u-boot driver is somehow mis-detecting how many bits are connected? The card should be saying which bit-widths it supports, and the host controller should be properly reporting which widths it supports. I'm not familiar with the pxa270's driver, but it might be possible to modify it to only do 1-bit transfers, and see if that works.
Andy

Hi,
Thanks everyone for your suggestions, I changed the width to 1 bit and it is working right.
Regards, Vaisakh P S
Andy Fleming-2 wrote:
On Mon, Jan 18, 2010 at 5:31 AM, Wolfgang Denk wd@denx.de wrote:
Dear Vaisakh P S,
In message 27208581.post@talk.nabble.com you wrote:
I did some more debugging, i dumped the MBR for the sdcard, and it was proper in OS in board and PC.
Here is the dump i got in OS:
00000000 fa b8 00 10 8e d0 bc 00 b0 b8 00 00 8e d8 8e c0 00000010 fb be 00 7c bf 00 06 b9 00 02 f3 a4 ea 21 06 00 00000020 00 be be 07 38 04 75 0b 83 c6 10 81 fe fe 07 75
...
But in Uboot, the dump which i got MBR read was the following
0xea 0xa8 0x0 0x0 0x8e 0xc0 0xac 0x0 0xa0 0xa8 0x0 0x0 0x8e 0xc8 0x8e 0xc0 0xea 0xae 0x0 0x6c 0xae 0x0 0x6 0xa8 0x0 0x2 0xe2 0xa4 0xea 0x20 0x6 0x0 0x0 0xae 0xae 0x6 0x28 0x4 0x64 0xa 0x82 0xc6 0x0 0x80 0xee 0xee 0x6 0x64 0xe2
Seems something is eating the 0x10 bit, so 0xFA becomes 0xEA, etc.
Actually, it looks like you're losing the 0x01 bit, too. Maybe the u-boot driver is somehow mis-detecting how many bits are connected? The card should be saying which bit-widths it supports, and the host controller should be properly reporting which widths it supports. I'm not familiar with the pxa270's driver, but it might be possible to modify it to only do 1-bit transfers, and see if that works.
Andy _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
participants (4)
-
Andy Fleming
-
Vaisakh
-
Vaisakh P S
-
Wolfgang Denk