U-Boot fails to load from SD when a USB dual HDD device is attached
Date: Wed, 29 Jun 2022 09:06:14 UTC
I'm running FreeBSD 13.1 on the Raspberry Pi 4B, with a new dual
SATA-to-USB hard drive docking station, and I've noticed a peculiar
situation: U-Boot fails to load FreeBSD from the SD card when the
docking station is plugged in and has two hard drives in it (presenting
two USB storage devices to U-Boot), but still succeeds when:
1. the device is not attached;
2. the device is attached but only has one hard drive in it, presenting
one USB storage device to U-Boot;
3. when the device with one hard drive in it, and another USB storage
device, such as a flash drive, are plugged in.
Any clue what might be causing this problem? I wonder if this might be
an issue with voltage sag/over-voltage on the USB interface causing the
SD card not to select, or something similar, although the docking
station has its own power supply and so should not be drawing a
substantial current from the pi.
I've included what errors I collected through the serial interface.
U-Boot 2021.07 (May 12 2022 - 07:00:33 +0000)
DRAM: 3.9 GiB
RPI 4 Model B (0xc03112)
MMC: mmc@7e300000: 3, emmc2@7e340000: 0
Loading Environment from FAT... In: serial
Out: vidconsole
Err: vidconsole
Net: eth0: ethernet@7d580000
PCIe BRCM: link up, 5.0 Gbps x1 (SSC)
starting USB...
Bus xhci_pci: Register 5000420 NbrPorts 5
Starting the controller
USB XHCI 1.00
scanning bus xhci_pci for devices... 3 USB Device(s) found
scanning usb for storage devices... 2 Storage Device(s) found
Hit any key to stop autoboot: 0
U-Boot> boot
switch to partitions #0, OK
mmc0 is current device
Scanning mmc 0:1...
libfdt fdt_check_header(): FDT_ERR_BADMAGIC
Scanning disk mmc@7e300000.blk...
Disk mmc@7e300000.blk not ready
Scanning disk emmc2@7e340000.blk...
** Unrecognized filesystem type **
...
run bootcmd
switch to partitions #0, OK
mmc0 is current device
Couldn't find partition dhcp 0:1
MMC Device 1 not found
no mmc device at slot 1
MMC Device 2 not found
no mmc device at slot 2
Device 0: Vendor: ASMT Rev: 0 Prod: ASM1156-PM
Type: Hard Disk
Capacity: 305245.3 MB = 298.0 GB (625142448 x 512)
... is now current device
Couldn't find partition dhcp 0:1
BOOTP broadcast 1
BOOTP broadcast 2
DHCP client bound to address 192.168.1.33 (1246 ms)
*** ERROR: `serverip' not set
Cannot autoload with TFTPGET
missing environment variable: pxeuuid
Retrieving file: pxelinux.cfg/01-dc-a6-32-90-1f-1e
*** ERROR: `serverip' not set
Retrieving file: pxelinux.cfg/C0A80121
*** ERROR: `serverip' not set
Retrieving file: pxelinux.cfg/C0A8012
*** ERROR: `serverip' not set
Retrieving file: pxelinux.cfg/C0A801
*** ERROR: `serverip' not set
Retrieving file: pxelinux.cfg/C0A80
*** ERROR: `serverip' not set
Retrieving file: pxelinux.cfg/C0A8
*** ERROR: `serverip' not set
Retrieving file: pxelinux.cfg/C0A
*** ERROR: `serverip' not set
Retrieving file: pxelinux.cfg/C0
*** ERROR: `serverip' not set
Retrieving file: pxelinux.cfg/C
*** ERROR: `serverip' not set
Retrieving file: pxelinux.cfg/default-arm-bcm283x-rpi
*** ERROR: `serverip' not set
Retrieving file: pxelinux.cfg/default-arm-bcm283x
*** ERROR: `serverip' not set
Retrieving file: pxelinux.cfg/default-arm
*** ERROR: `serverip' not set
Retrieving file: pxelinux.cfg/default
*** ERROR: `serverip' not set
Config file not found
BOOTP broadcast 1
BOOTP broadcast 2
DHCP client bound to address 192.168.1.33 (907 ms)
*** ERROR: `serverip' not set
Cannot autoload with TFTPGET
BOOTP broadcast 1
BOOTP broadcast 2
DHCP client bound to address 192.168.1.33 (1312 ms)
*** ERROR: `serverip' not set
Cannot autoload with TFTPGET
U-Boot>
Thanks!
Bradley