Thebootloader (MLO file), U-Boot and the LINUX kernel are stored on an SD card that connects to MMC1. Everything runs fine (including loading the LINUX kernel from MMC1) but only MMC0 interface is detected by the LINUX kernel. Somehow the MMC1 interface is not detected by the LINUX kernel.
Looking at the timestamps of the messages 'mmc0: mmc_rescan_try_freq: trying to init card at 400000 Hz' and 'mmc0: new high speed MMC card at address 0001' one can see that they differ by about 250ms. Is this the time for 'mmc0' to be detected?
The time from the message ' mmc1: mmc_rescan_try_freq: trying to init card at 400000 Hz' until the kernel panic message however is only 75ms. Could this be the problem, i.e. "the kernel giving up too soon" looking for the root file system?
I already had the 'rootwait' kernel parameter activated but this did not help. LINUX seemed to figure out that loading the driver for MMC0 is enough to decide whether a valid root filesystem is available or not. This assumption is wrong as the root filesystem is on an SD card mounted to MMC1.
Please read my posts above, they include the solution I found for my problem. If this solution does not work for you, you probably have some other kind of problem. In this case you should start a new thread. In any case you should provide much more information.
I ended up patching the u-boot source code used by -Builder to switch the boot target search order from mmc0, legacy_mmc0, mmc1, legacy_mmc1 to mmc1, legacy_mmc1, mmc0, legacy_mmc0. Then I wrote the MLO and SPL images to the image so they get used during install.
My PI's are again working as expected. Long story short, I deleted the pre-configuration within the RPi-Imager and everything worked fine with an SD-Card after activating the config option hdmi_force_hotplug=1.
After this success, I installed the image to my earlier mentioned USB-Stick (with hdmi_force_hotplug=1). The first thing I saw was the message mmc1: Controller never released inhibit bit(s) on the screen. After 5 seconds or so, the initial boot process started. After finishing this process, my RPi performed a restart, did "something" and rebooted again. After the last boot, the RPi booted into the PiOS Desktop.
And last but not leased during USB-Boot it seems that there is no activity to see on the green LED while loading the Desktop. While using an SD-Card you can see constant LED flickering until the Desktop has loaded.
- Add an option at the end of the installer to change the bootorder to `mmc1 mmc0 usb...` to "harden" the system if you don't plan on using the SD and don't want people to stick their stuff in the IOT
3a8082e126