SD/TF卡兼容性问题

尝试过各种img,包括debian Image 55/69,sdcard.img。
通过tftp升级SPL/UBOOT,但是SD卡boot依然报错:

dwmci_d: DATA ERROR!
mmc_bre: Failed to read blocks
dwmci_s: Timeout.
mmc_bre: Failed to set blocklen
dwmci_s: Timeout.
mmc_bre: Failed to set blocklen
dwmci_s: Timeout.
mmc_bre: Failed to set blocklen
dwmci_s: Timeout.
mmc_bre: Failed to set blocklen
dwmci_s: Timeout.
mmc_bre: Failed to set blocklen
dwmci_s: Timeout.
mmc_bre: Failed to set blocklen
dwmci_s: Timeout.
mmc_bre: Failed to set blocklen
dwmci_s: Timeout.
mmc_bre: Failed to set blocklen
BOOT fail,Error is 0xffffffff

UART下,执行mmc info

Card did not respond to voltage select! : -110

TF卡是SanDisk Ultra 64GB Class 10 UHS Class A-1。
是否应该考虑换一个卡?

更新

换了一个maxell的class 10 HC卡,同样还是无法找到SD卡。

--------EEPROM INFO--------

In:    serial@10000000
Out:   serial@10000000
Err:   serial@10000000
Model: StarFive VisionFive V2
Net:   eth0: ethernet@16030000, eth1: ethernet@16040000
unable to select a mode
Card did not respond to voltage select! : -110
bootmode flash device 0
Card did not respond to voltage select! : -110
Hit any key to stop autoboot:  0
Card did not respond to voltage select! : -110
Couldn't find partition mmc 0:3
Can't set block device
Importing environment from mmc0 ...
## Warning: Input data exceeds 1048576 bytes - truncated
## Info: input data size = 1048578 = 0x100002
## Error: "boot2" not defined
Card did not respond to voltage select! : -110

产品信息:

Product full SN: VF7110A1-2250-D008E000-00001054
data version: 0x2
PCB revision: 0xa1
BOM revision: A

已经测试SD支持


Debian69 版本需要更新SPL uboot 参考如下连接

好像读卡器附近的一个电阻没了,可以申请维修吗?

我的板子也没那个电阻但能成功启动,那个电阻应该默认是缺的

产品概述里的图也可做参考

1 Like

你用的是什么电源?

MacBook Pro 61W电源,支持5V 3A输出

1 Like

请问,你在用sdcard.img的tf卡,flash或者sd卡启动模式下,都无法启动系统吗?

SD/Flash模式都无法启动。

但是tftpboot似乎还可以加载内核和initrd,然后通过booti命令启动。

Flash 启动,拨码开关设置为00;
image
SD启动:拨码开关设置为01;
image

要是还不能启动,请把拨码开关设置为11,查看调试uart 口是否有CCCC 调试信息输出;

我现在可以引导内核。但是sd卡依然不能读。

(initramfs) dmesg|grep -i mmc
[    3.736218] dwmmc_starfive 16010000.sdio0: IDMAC supports 32-bit address mode.
[    3.736753] dwmmc_starfive 16020000.sdio1: IDMAC supports 32-bit address mode.
[    3.743531] dwmmc_starfive 16010000.sdio0: Using internal DMA controller.
[    3.750814] dwmmc_starfive 16020000.sdio1: Using internal DMA controller.
[    3.757622] dwmmc_starfive 16010000.sdio0: Version ID is 290a
[    3.764468] dwmmc_starfive 16020000.sdio1: Version ID is 290a
[    3.772379] dwmmc_starfive 16010000.sdio0: DW MMC controller at irq 29,32 bit host data width,32 deep fifo
[    3.777316] dwmmc_starfive 16020000.sdio1: DW MMC controller at irq 30,32 bit host data width,32 deep fifo
[    3.784214] mmc_host mmc0: card is non-removable.
[    3.791899] mmc_host mmc1: card is polling.
[    4.014088] mmc_host mmc0: Bus speed (slot 0) = 198000000Hz (slot req 400000Hz, actual 399193HZ div = 248)
[    4.094189] mmc_host mmc1: Bus speed (slot 0) = 198000000Hz (slot req 400000Hz, actual 399193HZ div = 248)
[    4.464168] mmc_host mmc0: Bus speed (slot 0) = 198000000Hz (slot req 300000Hz, actual 300000HZ div = 330)
[    4.534128] mmc_host mmc1: Bus speed (slot 0) = 198000000Hz (slot req 300000Hz, actual 300000HZ div = 330)
[    4.904164] mmc_host mmc0: Bus speed (slot 0) = 198000000Hz (slot req 200000Hz, actual 200000HZ div = 495)
[    4.974105] mmc_host mmc1: Bus speed (slot 0) = 198000000Hz (slot req 200000Hz, actual 200000HZ div = 495)
[    5.354099] mmc_host mmc0: Bus speed (slot 0) = 198000000Hz (slot req 100000Hz, actual 100000HZ div = 990)
[    5.414095] mmc_host mmc1: Bus speed (slot 0) = 198000000Hz (slot req 100000Hz, actual 100000HZ div = 990)
[  922.890580] mmc1: new high speed SDXC card at address aaaa
[  922.897987] mmcblk1: mmc1:aaaa SD64G 59.5 GiB
[  923.393640] blk_update_request: I/O error, dev mmcblk1, sector 0 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 0
[  923.404497] blk_update_request: I/O error, dev mmcblk1, sector 1 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 0
[  923.415390] blk_update_request: I/O error, dev mmcblk1, sector 2 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 0
[  923.426273] blk_update_request: I/O error, dev mmcblk1, sector 3 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 0
[  923.437155] blk_update_request: I/O error, dev mmcblk1, sector 4 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 0
[  923.448031] blk_update_request: I/O error, dev mmcblk1, sector 5 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 0
[  923.458900] blk_update_request: I/O error, dev mmcblk1, sector 6 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 0
[  923.469781] blk_update_request: I/O error, dev mmcblk1, sector 7 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 0
[  923.480133] Buffer I/O error on dev mmcblk1, logical block 0, async page read
[  923.488526] blk_update_request: I/O error, dev mmcblk1, sector 0 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 0
[  923.499118] blk_update_request: I/O error, dev mmcblk1, sector 1 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 0
[  923.511080] Buffer I/O error on dev mmcblk1, logical block 0, async page read
[  923.518251]  mmcblk1: unable to read partition table

如果你手头有其他sd卡,请尝试下看看,不确定是sd卡还是板子问题

我把sd卡插在读卡器接USB口,已经可以作为root分区启动了linux了。
但是Linux里板载SD卡读卡器依然报错,如上所述。

请问,拨码开关到sd模式启动,刷sdcard.img系统,启动错误是什么?

是否是:BOOT fail,Error is 0xffffffff

两张卡一样的现象?

两张SD卡在SDIO模式下都是如下错误:

dwmci_d: DATA ERROR!
mmc_bre: Failed to read blocks
dwmci_s: Timeout.
mmc_bre: Failed to set blocklen
dwmci_s: Timeout.
mmc_bre: Failed to set blocklen
dwmci_s: Timeout.
mmc_bre: Failed to set blocklen
dwmci_s: Timeout.
mmc_bre: Failed to set blocklen
dwmci_s: Timeout.
mmc_bre: Failed to set blocklen
dwmci_s: Timeout.
mmc_bre: Failed to set blocklen
dwmci_s: Timeout.
mmc_bre: Failed to set blocklen
dwmci_s: Timeout.
mmc_bre: Failed to set blocklen
BOOT fail,Error is 0xffffffff