** Description changed:
- On Raspberry Pi 5, an initramfs generated on the stock Ubuntu raspi
- images cannot bring up the onboard ethernet, which poses issues with
- network boot.
+ [Impact]
+
+ Raspberry Pi 5 cannot use any network-root configuration (NBD, NFS,
+ iSCSI) because the initramfs cannot bring up the onboard ethernet.
+
+ The ethernet controller on the Pi 5 is behind the RP1 chip, which is
+ connected over PCIe. The pcie-brcmstb host bridge driver is built into
+ the linux-raspi kernel, but the two reset controller drivers it needs
+ (reset-brcmstb and reset-brcmstb-rescal, referenced as "bridge" and
+ "rescal" in the resets property of the pcie node in bcm2712-rpi-5-b.dtb)
+ are built as modules. Initramfs tools include the ethernet driver (macb)
+ but have no way to know about device tree supplier dependencies, so the
+ reset modules are left out. The host bridge then defers probing forever
+ ("platform 1000120000.pcie: deferred probe pending" in
+ /sys/kernel/debug/devices_deferred), RP1 never appears on the PCI bus,
+ and eth0 does not exist inside the initramfs. A network-root boot hangs
+ indefinitely waiting for the root device.
+
+ Booting from SD card hides the problem because the root filesystem loads
+ the modules after switch-root.
+
+ The fix adds the two modules to the dracut configuration that ubuntu-
+ raspi-settings already ships (10-raspi-net.conf):
+
+ add_drivers+=" reset-brcmstb reset-brcmstb-rescal "
+
+ [Test Plan]
+
+ Hardware needed: a Pi 5, and a machine acting as DHCP/TFTP/NBD server on
+ the same network segment.
+
+ 1. Flash the resolute preinstalled server image, boot from SD once, and copy
the kernel, initrd, DTB and config.txt from /boot/firmware to the TFTP server.
Set up an NBD export of the root filesystem and a cmdline.txt with
root=/dev/nbd0, a static ip= parameter and the nbd connection parameters
(working nbd dracut module needed, see bug #NNNN2).
+ 2. Without the fix: netboot the Pi 5 with no SD card. The boot never
completes. The serial console shows the deferred pcie probe and /sys/class/net
inside the initramfs only contains lo.
+ 3. With the fixed package installed, rebuild the initramfs (dracut --force),
copy it to the TFTP server and netboot again. eth0 comes up inside the
initramfs, the NBD root is mounted, and the system reaches "systemctl
is-system-running: running".
+ 4. Regression test: boot the same system normally from SD card before and
after the change. Behaviour must be identical.
+
+ I have run this test plan on real hardware with the resolute image and
+ can verify the SRU. Serial console captures of the failing and working
+ boots are attached.
+
+ [Where problems could occur]
+
+ The change only affects initramfs images generated on systems with
+ ubuntu-raspi-settings installed, i.e. Raspberry Pi devices. It adds two
+ small reset controller drivers. On models where the device tree does not
+ reference them they are never bound (on BCM2711 the pcie node also uses
+ rescal, so the addition is consistent there too). A problem would show
+ up as a dracut build failure or a boot failure on Pi hardware, both of
+ which are covered by the standard image tests. If a future kernel builds
+ these drivers in, the add_drivers line becomes a no-op.
+
+ [Other Info]
+
+ Fixed in stonking with ubuntu-raspi-settings 26.10.3.
** Changed in: ubuntu-raspi-settings (Ubuntu Resolute)
Status: New => Triaged
** Changed in: ubuntu-raspi-settings (Ubuntu Resolute)
Status: Triaged => In Progress
--
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2164978
Title:
[SRU] Pi 5 initramfs lacks the PCIe reset supplier modules
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/ubuntu-raspi-settings/+bug/2164978/+subscriptions
--
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs