** Description changed:

  ## BUG 1 — DTB du Pi 5 imposé à tous les modèles de Raspberry Pi
  
  **Package:** piboot-try 1.1ubuntu0.1
  **Title:** `all.db: single entry for all Raspberry Pi models hardcodes 
DTB-Id: bcm2712-rpi-5-b.dtb`
+ 
+ ### System information
+ Ubuntu Server 26.04 (resolute), arm64
+ Board: Raspberry Pi 4 Model B Rev 1.1
+ compatible: raspberrypi,4-model-b brcm,bcm2711
+ Kernel: 7.0.0-1015-raspi
+ piboot-try:            1.1ubuntu0.1
+ flash-kernel:          3.110ubuntu2.1 (was installed, now removed)
+ linux-firmware-raspi:  14-0ubuntu1
+ initramfs-tools:       0.151ubuntu1
+ Boot layout: A/B tryboot (/boot/firmware/{current,new}, os_prefix, 
tryboot_a_b=1)
+ System history: installed from a 2020 image, upgraded through every release 
since (kernel traces from 5.11 onwards)
  
  ### Description
  
  `/usr/share/flash-kernel/db/all.db` groups all 16 Raspberry Pi models into a 
single entry
  that ends with a hardcoded `DTB-Id` pointing at the Raspberry Pi 5 device 
tree:
  
  ```
  Machine: Raspberry Pi
  Machine: Raspberry Pi 2 Model B *
  Machine: Raspberry Pi 3 Model A Plus *
  Machine: Raspberry Pi 3 Model B *
  Machine: Raspberry Pi 3 Model B Plus *
  Machine: Raspberry Pi 4 Model B *
  Machine: Raspberry Pi 400 *
  Machine: Raspberry Pi 5 Model B *
  Machine: Raspberry Pi 500 *
  Machine: Raspberry Pi Compute Module 3 *
  Machine: Raspberry Pi Compute Module 3 Plus *
  Machine: Raspberry Pi Compute Module 4 *
  Machine: Raspberry Pi Compute Module 5 Lite *
  Machine: Raspberry Pi Compute Module 5 *
  Machine: Raspberry Pi Zero 2 W *
  Kernel-Flavors: raspi raspi-realtime
  Method: pi-try
  DTB-Id: bcm2712-rpi-5-b.dtb
  ```
  
  `get_dtb_name()` in `/usr/share/flash-kernel/functions` (line ~250) resolves 
`DTB-Id` through
  `get_machine_field`, so **every** Raspberry Pi model — Pi 2, Pi 3, Pi 4, Zero 
2 W, CM3/CM4 —
  resolves to the Pi 5 device tree.
  
  ### Steps to reproduce
  
  On a Raspberry Pi 4 Model B running Ubuntu 26.04:
  
  ```
  $ sudo update-initramfs -u -k $(uname -r)
  ```
  
  ### Expected
  
  ```
  Using DTB: bcm2711-rpi-4-b.dtb
  Installing /lib/firmware/<version>/device-tree/broadcom/bcm2711-rpi-4-b.dtb 
into /boot/dtbs/...
  ```
  
  ### Actual
  
  ```
  Using DTB: bcm2712-rpi-5-b.dtb
  Installing /lib/firmware/<version>/device-tree/broadcom/bcm2712-rpi-5-b.dtb 
into /boot/dtbs/...
  ```
  
  The board itself is correctly identified by the kernel:
  
  ```
  $ tr -d '\0' < /proc/device-tree/model
  Raspberry Pi 4 Model B Rev 1.1
  $ tr -d '\0' < /proc/device-tree/compatible
  raspberrypi,4-model-b brcm,bcm2711
  ```
  
  ### Impact
  
  Booting is not affected in practice, because the Raspberry Pi firmware 
selects the device tree
  itself from the detected board and `piboot-try` copies *all* DTBs into the 
boot partition.
  The wrong DTB is however installed into `/boot/dtbs/<version>/`, which is 
misleading and would
  break any tooling relying on that path.
  
  ### Workaround
  
  Override the field in `/etc/flash-kernel/db`, which takes precedence:
  
  ```
  Machine: Raspberry Pi 4 Model B *
  DTB-Id: bcm2711-rpi-4-b.dtb
  ```
  
  ### Suggested fix
  
  Split the entry so each model (or at least each SoC family: bcm2711 / bcm2712 
/ bcm2710) carries
  its own `DTB-Id`, or resolve the DTB from `/proc/device-tree/compatible` 
instead of a static field.

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2162654

Title:
  all.db: single entry for all Raspberry Pi models hardcodes DTB-Id:
  bcm2712-rpi-5-b.dtb

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/flash-kernel/+bug/2162654/+subscriptions


-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to