Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 29 Jun 2022 02:06:14 -0700
From:      Bradley Proffit <bproffit@amaranth.digital>
To:        freebsd-arm@freebsd.org
Subject:   U-Boot fails to load from SD when a USB dual HDD device is attached
Message-ID:  <12609da5-c560-f336-762f-32fc5fa71d48@amaranth.digital>

next in thread | raw e-mail | index | archive | help
This is a multi-part message in MIME format.
--------------c268bajFDQH6Lt4n6MzfzKaV
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

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

--------------c268bajFDQH6Lt4n6MzfzKaV
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 8bit

<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p>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:</p>
    <ol>
      <li>the device is not attached;</li>
      <li>the device is attached but only has one hard drive in it,
        presenting one USB storage device to U-Boot;</li>
      <li>when the device with one hard drive in it, and another USB
        storage device, such as a flash drive, are plugged in.</li>
    </ol>
    <p>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.</p>
    <p>I've included what errors I collected through the serial
      interface.<br>
    </p>
    <blockquote>
      <p><br>
      </p>
      <p>U-Boot 2021.07 (May 12 2022 - 07:00:33 +0000)<br>
        <br>
        DRAM:  3.9 GiB<br>
        RPI 4 Model B (0xc03112)<br>
        MMC:   mmc@7e300000: 3, emmc2@7e340000: 0<br>
        Loading Environment from FAT... In:    serial<br>
        Out:   vidconsole<br>
        Err:   vidconsole<br>
        Net:   eth0: ethernet@7d580000<br>
        PCIe BRCM: link up, 5.0 Gbps x1 (SSC)<br>
        starting USB...<br>
        Bus xhci_pci: Register 5000420 NbrPorts 5<br>
        Starting the controller<br>
        USB XHCI 1.00<br>
        scanning bus xhci_pci for devices... 3 USB Device(s) found<br>
               scanning usb for storage devices... 2 Storage Device(s)
        found<br>
        Hit any key to stop autoboot:  0 <br>
        U-Boot&gt; boot<br>
        switch to partitions #0, OK<br>
        mmc0 is current device<br>
        Scanning mmc 0:1...<br>
        libfdt fdt_check_header(): FDT_ERR_BADMAGIC<br>
        Scanning disk <a class="moz-txt-link-abbreviated" href="mailto:mmc@7e300000.blk">mmc@7e300000.blk</a>...<br>
        Disk <a class="moz-txt-link-abbreviated" href="mailto:mmc@7e300000.blk">mmc@7e300000.blk</a> not ready<br>
        Scanning disk <a class="moz-txt-link-abbreviated" href="mailto:emmc2@7e340000.blk">emmc2@7e340000.blk</a>...<br>
        ** Unrecognized filesystem type **<br>
        <br>
        ...<br>
        <br>
        run bootcmd<br>
        switch to partitions #0, OK<br>
        mmc0 is current device<br>
        Couldn't find partition dhcp 0:1<br>
        MMC Device 1 not found<br>
        no mmc device at slot 1<br>
        MMC Device 2 not found<br>
        no mmc device at slot 2<br>
        <br>
        Device 0: Vendor: ASMT     Rev: 0    Prod: ASM1156-PM      <br>
                    Type: Hard Disk<br>
                    Capacity: 305245.3 MB = 298.0 GB (625142448 x 512)<br>
        ... is now current device<br>
        Couldn't find partition dhcp 0:1<br>
        BOOTP broadcast 1<br>
        BOOTP broadcast 2<br>
        DHCP client bound to address 192.168.1.33 (1246 ms)<br>
        *** ERROR: `serverip' not set<br>
        Cannot autoload with TFTPGET<br>
        missing environment variable: pxeuuid<br>
        Retrieving file: pxelinux.cfg/01-dc-a6-32-90-1f-1e<br>
        *** ERROR: `serverip' not set<br>
        Retrieving file: pxelinux.cfg/C0A80121<br>
        *** ERROR: `serverip' not set<br>
        Retrieving file: pxelinux.cfg/C0A8012<br>
        *** ERROR: `serverip' not set<br>
        Retrieving file: pxelinux.cfg/C0A801<br>
        *** ERROR: `serverip' not set<br>
        Retrieving file: pxelinux.cfg/C0A80<br>
        *** ERROR: `serverip' not set<br>
        Retrieving file: pxelinux.cfg/C0A8<br>
        *** ERROR: `serverip' not set<br>
        Retrieving file: pxelinux.cfg/C0A<br>
        *** ERROR: `serverip' not set<br>
        Retrieving file: pxelinux.cfg/C0<br>
        *** ERROR: `serverip' not set<br>
        Retrieving file: pxelinux.cfg/C<br>
        *** ERROR: `serverip' not set<br>
        Retrieving file: pxelinux.cfg/default-arm-bcm283x-rpi<br>
        *** ERROR: `serverip' not set<br>
        Retrieving file: pxelinux.cfg/default-arm-bcm283x<br>
        *** ERROR: `serverip' not set<br>
        Retrieving file: pxelinux.cfg/default-arm<br>
        *** ERROR: `serverip' not set<br>
        Retrieving file: pxelinux.cfg/default<br>
        *** ERROR: `serverip' not set<br>
        Config file not found<br>
        BOOTP broadcast 1<br>
        BOOTP broadcast 2<br>
        DHCP client bound to address 192.168.1.33 (907 ms)<br>
        *** ERROR: `serverip' not set<br>
        Cannot autoload with TFTPGET<br>
        BOOTP broadcast 1<br>
        BOOTP broadcast 2<br>
        DHCP client bound to address 192.168.1.33 (1312 ms)<br>
        *** ERROR: `serverip' not set<br>
        Cannot autoload with TFTPGET<br>
        U-Boot&gt; </p>
      <p><br>
      </p>
    </blockquote>
    <p>Thanks!<br>
    </p>
    <p>Bradley<br>
    </p>
  </body>
</html>

--------------c268bajFDQH6Lt4n6MzfzKaV--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?12609da5-c560-f336-762f-32fc5fa71d48>