UHS-1 problem at 1.8V, cannot read partition table

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

UHS-1 problem at 1.8V, cannot read partition table

2,126 次查看
frédéric
Contributor III

We have a custom board based on a nitrogen6x, with an iMX6, and 1.8V switching. We are using kernel 3.0.35 and boot on the SD card.

95% of the time it works fine, we can see SD card switches to 1.8V and the clock goes from about 44MHz to 174MHz, transfer speed is higher, etc,

At boot, we have a couple of warning about data interrupt in dmesg

mmc0: Got data interrupt 0x0000000a even though no data operation was in progress.

But sometimes it fails completely with:

mmc0: host does not support reading read-only switch. assuming write-enable.
mmc0: new ultra high speed SDHC card at address 59b4
mmcblk0: mmc0:59b4 AF UD 15.0 GiB
mmcblk0: error -84 transferring data, sector 0, nr 8, cmd response 0x900, card status 0xb00
mmcblk0: retrying using single block read
mmcblk0: error -84 transferring data, sector 1, nr 7, cmd response 0x900, card status 0x0
end_request: I/O error, dev mmcblk0, sector 1
mmc0: Got data interrupt 0x0000000a even though no data operation was in progress.
mmcblk0: error -84 transferring data, sector 2, nr 6, cmd response 0x900, card status 0x0
end_request: I/O error, dev mmcblk0, sector 2
mmc0: Got data interrupt 0x0000000a even though no data operation was in progress.
mmcblk0: error -84 transferring data, sector 3, nr 5, cmd response 0x900, card status 0x0
end_request: I/O error, dev mmcblk0, sector 3
Buffer I/O error on device mmcblk0, logical block 0
mmcblk0: error -84 transferring data, sector 0, nr 8, cmd response 0x900, card status 0xb00
mmcblk0: retrying using single block read
mmc0: Got data interrupt 0x0000000a even though no data operation was in progress.
mmcblk0: error -84 transferring data, sector 0, nr 8, cmd response 0x900, card status 0x0
end_request: I/O error, dev mmcblk0, sector 0
mmc0: Got data interrupt 0x0000000a even though no data operation was in progress.
mmcblk0: error -84 transferring data, sector 2, nr 6, cmd response 0x900, card status 0x0
end_request: I/O error, dev mmcblk0, sector 2
mmc0: Got data interrupt 0x0000000a even though no data operation was in progress.
mmcblk0: error -84 transferring data, sector 3, nr 5, cmd response 0x900, card status 0x0
end_request: I/O error, dev mmcblk0, sector 3
Buffer I/O error on device mmcblk0, logical block 0
mmcblk0: error -84 transferring data, sector 0, nr 8, cmd response 0x900, card status 0xb00
mmcblk0: retrying using single block read
mmcblk0: error -84 transferring data, sector 2, nr 6, cmd response 0x900, card status 0x0
end_request: I/O error, dev mmcblk0, sector 2
mmc0: Got data interrupt 0x0000000a even though no data operation was in progress.
mmcblk0: error -84 transferring data, sector 3, nr 5, cmd response 0x900, card status 0x0
end_request: I/O error, dev mmcblk0, sector 3
Buffer I/O error on device mmcblk0, logical block 0
mmcblk0: unable to read partition table

The failing comes from add_disk(md->disk) in mmc_add_disk() in drivers/mmc/card/block.c

We have no problem with SD card working at 3.3V and no warning about data interrupt, cards working in high speed mode can boot 5000+ times without a single problem. Cards in ultra high speed fails 2-5% of the time with message above. If we force an UHS-1 card in 3.3V it works fine too.

We merged the "sabre ai sdio 3.0_patches.zip" I found on this forum, but behaviour is the same, I did not modify our init structure however.

Any input appreciated!

标记 (3)
0 项奖励
回复
1 回复

960 次查看
igorpadykov
NXP Employee
NXP Employee

HI Frédéric

this may be due to errors on SD bus caused by signal integrity issues,

so may be recommended to check board layout and noise.

Some recommendations can be found on sect.3.5.8 High speed signal

routing recommendations i.MX6 System Development User’s Guide (rev.1, 6/2013)

http://cache.freescale.com/files/32bit/doc/user_guide/IMX6DQ6SDLHDG.pdf

Best regards

igor

0 项奖励
回复