Uboot가 SD 카드에서 부팅되지만 mmc에서 정보를 읽을 수 없습니다.

Uboot가 SD 카드에서 부팅되지만 mmc에서 정보를 읽을 수 없습니다.

Rockchip SOQuartz CM4용 부팅 가능한 SD 카드를 설정 중입니다.

이 대상에 대한 uboot를 빌드하고 이를 rootfs 이미지 및 커널과 함께 SD 카드에 쓰고 uboot를 로드한 다음 uboot 터미널에 들어갈 수 있었습니다. 다음 단계로 SD 카드에서 커널/rootfs 이미지를 찾아 부팅하려고 합니다.

호스트 컴퓨터의 SD 카드를 보면 커널 이미지 파일, 보드용 장치 트리 DTB 파일, 여러 장치 트리 오버레이 DTBO 파일이 포함된 오버레이 파일이 포함된 BOOT 파티션을 볼 수 있습니다. SD 카드에는 squashfs 형식의 루트 파일 시스템 파티션도 있습니다. uboot 바이너리는 섹터 64에 설치됩니다.Rockchip 마이크로 문서에 따르면.

이 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 16GB SD 카드입니다.

U-Boot가 내 SD 카드 파티션과 여기에 설치된 파일을 찾을 수 있도록 하려면 어떤 단계를 수행해야 합니까?

답변1

업데이트: "mmc dev" 명령을 사용하여 mmc 인터페이스의 속도 모드를 변경하여 "카드가 전압 선택에 응답하지 않습니다!: -110" 오류를 해결할 수 있었습니다.

=> 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

이 로그에서 "mmc info" 및 "mmc part"에 대한 초기 호출은 모두 전압 선택 오류를 반환한다는 점에 유의하십시오. "mmc dev 1 0 6"을 사용하여 mmc 속도를 설정한 후 SD 카드에서 정보를 얻을 수 있었습니다.

"mmc dev 1 0 6" 분석: mmc dev 명령, 장치 1(SD로 표시됨), 파티션 0, 속도 모드 6. 속도 모드 6 = UHS SDR25(50MHz). 다른 속도 모드도 작동할 수 있습니다. 처음 시도하는 것입니다.

uboot mmc 명령에 대한 전체 문서는 여기에서 찾을 수 있습니다: https://docs.u-boot.org/en/latest/usage/cmd/mmc.html

실제로 파티션에서 내 파일을 찾으려면 아직 해야 할 일이 더 많지만 이제는 실제로 SD 카드를 탐색하는 단계에 가까워졌습니다. 이 단계가 미래의 누군가에게 유용하길 바랍니다.

관련 정보