0

I am working on setting up a bootable SD card for a Rockchip SOQuartz CM4.

I am able to build uboot for this target, write it to an SD card along with a rootfs image and kernel, load uboot, and get to a uboot terminal. I am trying to take the next step of locating the kernel/rootfs image on the SD card, and boot it.

When I view the SD card on my host machine, I can see the BOOT partition which contains the Kernel image file, the device tree DTB file for this board, and an overlays file with several device tree overlay DTBO files. The SD card also has a squashfs formatted root file system partition. The uboot binary has been installed at sector 64, according to the Rockchip documentation.

When I boot from this SD card, I am able to observe the first stage bootloader, U-Boot SPL, and U-Boot proper all load on the terminal. However, I am getting several errors related to voltage select on the SD card. This is preventing me from seeing the partitions on the SD card with commands like mmc part or mmc info:

U-Boot 2024.01-rc2-g169c3cc4 (Nov 17 2023 - 15:01:56 -0500)

Model: Pine64 RK3566 SoQuartz with CM4-IO Carrier Board
DRAM:  2 GiB
PMIC:  RK8090 (on=0x40, off=0x00)
Core:  312 devices, 27 uclasses, devicetree: separate
MMC:   mmc@fe2b0000: 1, mmc@fe2c0000: 2, mmc@fe310000: 0
Loading Environment from nowhere... OK
In:    serial@fe660000
Out:   serial@fe660000
Err:   serial@fe660000
Model: Pine64 RK3566 SoQuartz with CM4-IO Carrier Board
Net:   eth0: ethernet@fe010000
Hit any key to stop autoboot:  0
Error: unknown compression type.
Card did not respond to voltage select! : -110
pcie_dw_rockchip pcie@fe260000: PCIe-0 Link Fail
pcie_dw_rockchip pcie@fe260000: PCIe-0 Link Fail
scanning bus for devices...
Bus usb@fcc00000: Register 2000140 NbrPorts 2
Starting the controller
USB XHCI 1.10
scanning bus usb@fcc00000 for devices... 2 USB Device(s) found
pcie_dw_rockchip pcie@fe260000: PCIe-0 Link Fail
ethernet@fe010000 Waiting for PHY auto negotiation to complete......... TIMEOUT !
phy_startup() failed: -110FAILED: -110pcie_dw_rockchip pcie@fe260000: PCIe-0 Link Fail
ethernet@fe010000 Waiting for PHY auto negotiation to complete......... TIMEOUT !
phy_startup() failed: -110FAILED: -110=>
=> mmc info
Card did not respond to voltage select! : -110
=> mmc part
Card did not respond to voltage select! : -110
=>

What is the cause of this error? Is there something wrong with my SD card? I assume my SD card is fine, because it is able to load U-Boot and get me to this point. If it matters, it is a Sandisk UHS-I 16 GB SD card.

What steps should I take to get U-Boot to find my SD card partitions and the files that are installed on them?

1 Answer 1

0

Update: I was able to resolve the "Card did not respond to voltage select! : -110" error by using the "mmc dev" command to change the speed mode of the mmc interface.

=> mmc list
mmc@fe2b0000: 1 (SD)
mmc@fe2c0000: 2
mmc@fe310000: 0
=> mmc dev
Card did not respond to voltage select! : -110
=> mmc part
Card did not respond to voltage select! : -110
=> mmc info
Card did not respond to voltage select! : -110
=> mmc list
mmc@fe2b0000: 1 (SD)
mmc@fe2c0000: 2
mmc@fe310000: 0
=> mmc dev 1 0 6
switch to partitions #0, OK
mmc1 is current device
=> mmc info
Device: mmc@fe2b0000
Manufacturer ID: 3
OEM: 5344
Name: SL16G
Bus Speed: 50000000
Mode: SD High Speed (50MHz)
Rd Block Len: 512
SD version 3.0
High Capacity: Yes
Capacity: 14.8 GiB
Bus Width: 4-bit
Erase Group Size: 512 Bytes
=> mmc part

Partition Map for MMC device 1  --   Partition Type: DOS

Part    Start Sector    Num Sectors     UUID            Type
  1     31314           289044          00000000-01     0c Boot
  2     609402          289044          00000000-02     83
  3     1187490         289044          00000000-03     83
  4     1476534         29639754        00000000-04     83

Observe that in this log, my initial calls to "mmc info" and "mmc part" both return the voltage select error. After I set the mmc speed with "mmc dev 1 0 6", I was able to get info from the SD card.

"mmc dev 1 0 6" breakdown: mmc dev command, device 1 (listed as SD), partition 0, speed mode 6. Speed mode 6 = UHS SDR25 (50 MHz). Other speed modes might work as well. This was the first one I tried.

Full documentation on the uboot mmc command can be found here: https://docs.u-boot.org/en/latest/usage/cmd/mmc.html

I have more work to do to actually find my files on my partition, but I'm closer to actually exploring the SD card now. Hopefully this step is useful for someone in the future.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .