我正在为 Rockchip SOQuartz CM4 设置可启动 SD 卡。
我能够为此目标构建 uboot,将其与 rootfs 映像和内核一起写入 SD 卡,加载 uboot,然后进入 uboot 终端。我正在尝试采取下一步措施,在 SD 卡上找到内核/rootfs 映像,然后启动它。
当我在主机上查看 SD 卡时,我可以看到 BOOT 分区,其中包含内核映像文件、该板的设备树 DTB 文件以及包含多个设备树覆盖 DTBO 文件的覆盖文件。SD卡还有一个squashfs格式的根文件系统分区。根据 Rockchip 文档,uboot 二进制文件已安装在第 64 扇区。
当我从这张 SD 卡启动时,我能够观察到第一阶段引导加载程序、U-Boot SPL 和 U-Boot 正确终端上的所有负载。但是,我收到几个与 SD 卡上的电压选择相关的错误。这导致我无法使用 mmc part 或 mmc info 等命令查看 SD 卡上的分区:
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
=>
出现这个错误的原因是什么?我的SD卡有问题吗?我认为我的 SD 卡没问题,因为它能够加载 U-Boot 并让我达到这一点。如果重要的话,它是 Sandisk UHS-I 16 GB SD 卡。
我应该采取哪些步骤让 U-Boot 找到我的 SD 卡分区以及安装在其中的文件?