Public bug reported:

## 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.

** Affects: flash-kernel (Ubuntu)
     Importance: Undecided
         Status: New

** Attachment added: "apport.piboot-try.44rhinpp.apport"
   
https://bugs.launchpad.net/bugs/2162654/+attachment/5988628/+files/apport.piboot-try.44rhinpp.apport

-- 
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