Closed 3dlabsio closed 2 years ago
I can reproduce this, weirdly this works fine on the lite with sdcard
@3dlabsio Please could you give the attached EEPROM a try. It looks as though the RSA signature checks in secure-boot OTP was triggering an issue in the EMMC setup that caused it to take a long time to respond to CSD.
@timg236 This is confirmed working. Thanks for the quick fix. On a side note, it appears that config.txt still needs to be present in /boot or USB ports didn't get initialized on my system.
By "/boot" are you referring to the file-system contained within boot.img? If so, then yes, you need to have config.txt
file with either otg_mode=1
(preferred) or dtoverlay=dwc2,dr_mode=host
because by default in the USB PHY is not enabled.
The Bullseye OS image contains the following in the default config.txt
file.
[cm4]
otg_mode=1
Note that if the only config.txt setting required is otg_mode=1
then, depending on your application, you may prefer to set that semi-permanently in the EEPROM config:
[config.txt]
otg_mode=1
@3dlabsio The pieeprom.original.bin files were updated in this commit so marking the EMMC issues as resolved. Please comment if this is not the case. https://github.com/raspberrypi/usbboot/commit/34925c0814a0d2eb96f895ebd33eab8e1b1a5387
After successfully testing a signed boot.img/boot.sig with SIGNED_BOOT=1 in boot.conf, committing the public key to OTP permanently results in eMMC not booting anymore.
I'm using the latest version from this repo (2/08/2022)
The cm4 green light yields 4 rapid blinks indicating start*.elf cannot be found.
Placing the same boot.img/boot.sig on a USB thumbdrive successfully boots via USB boot, so it doesn't appear to be a signing issue.
I have tried multiple things such as recreated the FAT32 boot partition, running fsck on it to repair it, ensuring it's properly labeled as "boot" with fat label -- nothing works, it seems as if the system cannot see or access /boot at all.
The recovery and USB msd signed images both also work via rpiboot, so it appears to be directly limited to the emmc not being seen.
Relevant UART output: