Other distros will almost certainly need updates, you'll have to check with the maintainers of those distrosLufyCZ wrote: ↑Wed May 20, 2020 4:31 pmHow would I go about using USB boot on the Ubuntu Server version? I copied the updated files to the system-boot partition, but have had no luck getting the Pi to boot. The distro uses uboot, could that be a problem?
I got raspbian to work fine from an SD card in a card reader.
Not sure that it's actually hanging, it will probably give up on USB boot and try SD in about 20 seconds time. Most likely TEST_UNIT_READY is not responding. so that it can't progress any further.andrum99 wrote: ↑Wed May 20, 2020 4:28 pmI've managed to find a device that breaks USB boot if it is attached. I have a pair of Startech.com 3.5" HDD enclosures (S3510BMU33), which are single drive enclosures. I have a 1TB hard disk in each which currently make up a ZFS pool that I have used successfully with Raspbian, and now Ubuntu 20.04 arm64. To test USB MSD boot, I powered down that Pi, the hub, and the enclosures, then connected the hub and the two enclosures to my 'testing' Pi 4B 4GB (same as the one that boots from other USB MSD devices). I'm seeing a consistent hang in the bootloader when it gets to the 'LUN 0' stage of examining the drive. I've tried extending the device timeout from 2000 to 7000 milliseconds, but it makes no difference. The drive spins up but the bootloader gets stuck at 'LUN 0'.
The Startech enclosure has vid:pid 174c:1053 which is a generic ASM1053 id. The bridge chip says ASM1053 on it.
For some reason the bootloader is hanging when it tries to talk to this drive. I can boot from another hard disk (in the working 2.5" enclosure), but if the non-working 3.5" enclosure is connected at boot time, the bootloader always hangs. I have tried the enclosure connected to a USB 2 hub and USB 3 hub that will do USB MSD boot OK with a different drive and enclosure (2.5" Hitachi hard disk, enclosure bridge 174c:1153 which is an ASM1153E).
Screenshot with both problematic drive enclosures, and working 2.5" enclosure attached, all via hub: https://drive.google.com/file/d/1qvkYpd ... sp=sharing
Screenshot with just one problematic enclosure attached via hub: https://drive.google.com/file/d/1_lGwHV ... sp=sharing
I have jumper cables on order to hook up to another machine so I can get debug out of the serial port (I seem to have lost the ones I used back back in the day with my Pi 1s). I will look at setting up network debug output as well.
No. The bootloader uses mass-storage as the boot protocol and is completely unrelated to Linux's choice of access interface.thatchunkylad198966 wrote: ↑Wed May 20, 2020 5:26 pmSorry if this has been asked... do we need usb-storage quirks?
timg236 wrote: ↑Wed May 20, 2020 4:28 pmThat picture, I think, has all the required details showing that all the updates were carried out. I am now booting from USB.![]()
Looks like the previous failure was few missing details (got from elsewhere) as shown below:
Code: Select all
cp /lib/firmware/raspberrypi/bootloader/beta/pieeprom-2020-05-15.bin pieeprom.bin rpi-eeprom-config pieeprom.bin > bootconf.txt rpi-eeprom-config --out pieeprom-new.bin --config bootconf.txt pieeprom.bin sudo rpi-eeprom-update -d -f ./pieeprom-new.bin reboot
Code: Select all
sudo rpi-eeprom-update -d -f /lib/firmware/raspberrypi/bootloader/beta/pieeprom-2020-05-15.bin
Now the boot order is 0xf41 and it boots without SD card from my SSD.geev03 wrote: ↑Wed May 20, 2020 5:47 pmCode: Select all
cp /lib/firmware/raspberrypi/bootloader/beta/pieeprom-2020-05-15.bin pieeprom.bin rpi-eeprom-config pieeprom.bin > bootconf.txt rpi-eeprom-config --out pieeprom-new.bin --config bootconf.txt pieeprom.bin sudo rpi-eeprom-update -d -f ./pieeprom-new.bin reboot
Nope, I'm running raspbian, and I followed the instructions on the bootloader page to switch to the beta branch and update from there. As I said, the dumped config stated a boot priority of 0xF41 but this wasn't reflected on the bootloader status messages when I started the Pi. The displayed bootloader date was correct though.
If you can reproduce it let us know with the hashes / binaries of the pieeprom.bin and pieeprom.upd. recovery.bin does a blind sector by sector write so there's nothing VideoCore side which will change your configuration.Marko73 wrote: ↑Wed May 20, 2020 6:16 pmNope, I'm running raspbian, and I followed the instructions on the bootloader page to switch to the beta branch and update from there. As I said, the dumped config stated a boot priority of 0xF41 but this wasn't reflected on the bootloader status messages when I started the Pi. The displayed bootloader date was correct though.
It's working now anyway![]()
timg236 wrote: ↑Wed May 20, 2020 6:23 pmIf you can reproduce it let us know with the hashes / binaries of the pieeprom.bin and pieeprom.upd. recovery.bin does a blind sector by sector write so there's nothing VideoCore side which will change your configuration. If BOOT_ORDER was missing then that could happen.Marko73 wrote: ↑Wed May 20, 2020 6:16 pmNope, I'm running raspbian, and I followed the instructions on the bootloader page to switch to the beta branch and update from there. As I said, the dumped config stated a boot priority of 0xF41 but this wasn't reflected on the bootloader status messages when I started the Pi. The displayed bootloader date was correct though.
It's working now anyway![]()
Thanks. also; can we use drives that are over 2TB?jdb wrote: ↑Wed May 20, 2020 5:40 pmNo. The bootloader uses mass-storage as the boot protocol and is completely unrelated to Linux's choice of access interface.thatchunkylad198966 wrote: ↑Wed May 20, 2020 5:26 pmSorry if this has been asked... do we need usb-storage quirks?
Code: Select all
Bus 002 Device 002: ID 174c:55aa ASMedia Technology Inc. Name: ASM1051E SATA 6Gb/s bridge, ASM1053E SATA 6Gb/s bridge, ASM1153 SATA 3Gb/s bridge, ASM1153E SATA 6Gb/s bridge
Glad it's booting. It might be worth trying a powered USB hub.Herbaldew wrote: ↑Wed May 20, 2020 6:26 pmAny guesses what I have done wrong?
Went through the process 3 times all with same results. Once I remove the SD card and boot, I no longer have wifi and my mouse quits working.
On the bright side, I was expecting this to be much slower than hybrid SD/USB booting (My Pi 3b rebooted in 30 seconds hybrid/around 60 seconds pure USB) - Wow! Now booting hybrid around 30 seconds pure USB around 20 secondsGood job!
Changing the firmware release
You can change which release stream is to be used during an update by editing the /etc/default/rpi-eeprom-update file and changing the FIRMWARE_RELEASE_STATUS entry to the appropriate stream.
When you edit rpi-eeprom-update, change the word critical to beta.
timg236 wrote: ↑Wed May 20, 2020 6:54 pmGlad it's booting. It might be worth trying a powered USB hub.Herbaldew wrote: ↑Wed May 20, 2020 6:26 pmAny guesses what I have done wrong?
Went through the process 3 times all with same results. Once I remove the SD card and boot, I no longer have wifi and my mouse quits working.
On the bright side, I was expecting this to be much slower than hybrid SD/USB booting (My Pi 3b rebooted in 30 seconds hybrid/around 60 seconds pure USB) - Wow! Now booting hybrid around 30 seconds pure USB around 20 secondsGood job!
The PCI controller is reset before starting Linux which also asserts the chip reset on the VLI so I can't immediately see how state can be propagated to the host OS, although maybe the devices are now seeing a different sequence of USB resets.
I'm trying to boot from a USB3 to SATA sabrent lead. it's not booting. I've tried formatting it and flashing the eeprom whilst booted from the SD and nope. what am I doing wrong?thatchunkylad198966 wrote: ↑Wed May 20, 2020 7:15 pmDone but I have a red/orange always on light when trying to boot?
It has actually hung - it took me a lot longer than 20 seconds to get a photo of the screen, then go back and see that it was still at exactly the same point. I will raise a github issue once I've got debug logging up and running.timg236 wrote: ↑Wed May 20, 2020 4:46 pmNot sure that it's actually hanging, it will probably give up on USB boot and try SD in about 20 seconds time. Most likely TEST_UNIT_READY is not responding. so that it can't progress any further.
Probably best to raise a GitHub issue with a dump of the logs containing at least the descriptors, msd, msd_verbose xhci log levels.
Still won't boot....Create a bootable USB drive
Use the Raspberry Pi Imager to flash Raspbian to a USB mass storage device. Other distros have not been tested and may require updates (e.g. u-boot). One reason for having a public beta is to help get USB MSD boot support into other distros.
Download the updated firmware files *.elf *.dat from the master branch of the Raspberry Pi Firmware Github repo.
Alternatively use sudo rpi-update to update the firmware on a Raspbian SD card install and copy the files from there.
Copy these updates to the boot partition on the USB device. From now on sudo rpi-update can be used from within Raspbian on the USB boot device.
A Linux kernel update is not required. Raspbian has been tested using the 4.19 and 5.4 (32 and 64 bit) kernel.
Code: Select all
vcc-sd: disablingCode: Select all
random: crng init doneCode: Select all
[all]
BOOT_UART=0
WAKE_ON_GPIO=1
POWER_OFF_ON_HALT=1
DHCP_TIMEOUT=45000
DHCP_REQ_TIMEOUT=4000
TFTP_FILE_TIMEOUT=30000
ENABLE_SELF_UPDATE=1
DISABLE_HDMI=0
SD_BOOT_MAX_RETRIES=1
USB_MSD_BOOT_MAX_RETRIES=5
BOOT_ORDER=0xf124
USB_MSD_EXCLUDE_VID_PID=05e30612
USB_MSD_DISCOVER_TIMEOUT=20000
USB_MSD_LUN_TIMEOUT=4000Code: Select all
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 5000M
ID 1d6b:0003 Linux Foundation 3.0 root hub
|__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 5000M
ID 05e3:0612 Genesys Logic, Inc. Hub
|__ Port 1: Dev 4, If 0, Class=Mass Storage, Driver=usb-storage, 5000M
ID 1058:25fb Western Digital Technologies, Inc.
|__ Port 2: Dev 5, If 0, Class=Mass Storage, Driver=usb-storage, 5000M
ID 1058:25fb Western Digital Technologies, Inc.
|__ Port 3: Dev 6, If 0, Class=Mass Storage, Driver=usb-storage, 5000M
ID 1058:25fb Western Digital Technologies, Inc.
|__ Port 4: Dev 7, If 0, Class=Mass Storage, Driver=usb-storage, 5000M
ID 1058:25fb Western Digital Technologies, Inc.
|__ Port 2: Dev 3, If 0, Class=Mass Storage, Driver=uas, 5000M
ID 152d:0583 JMicron Technology Corp. / JMicron USA Technology Corp.
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/1p, 480M
ID 1d6b:0002 Linux Foundation 2.0 root hub
|__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M
ID 2109:3431 VIA Labs, Inc. Hub
|__ Port 1: Dev 3, If 0, Class=Hub, Driver=hub/4p, 480M
ID 05e3:0610 Genesys Logic, Inc. 4-port hub