u-boot unmatched dtb does not match kernel dtb
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
u-boot (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned | ||
Focal |
Fix Released
|
Undecided
|
William Wilson | ||
u-boot-menu (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned | ||
Focal |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
[Impact]
* Without the fix, Unmatched images will not boot in qemu
[Test Case]
* `qemu-system-
-machine virt -nographic -m 2048 -smp 4 \
-bios /usr/lib/
-kernel /usr/lib/
-device virtio-
-drive file=<unmatched image file>,format=
* Observe that the above command fails to boot the image in qemu
* Build a new unmatched image with the version of u-boot-menu
and u-boot in -proposed. Both are needed.
* Re-run the above qemu command on the new image, and observe
that it boots
* Also boot the new image on HiFive Unmatched hardware to ensure it
boots.
[Regression Potential]
While multiple hardware platforms use u-boot, the only Ubuntu
image using u-boot-menu is the Unmatched. The risk of regression
is therefore very low, and only the hardware boot and qemu boot
need to be tested.
[Original Description]
u-boot unmatched dtb does not match kernel dtb
We have reverted u-boot-menu upload and stopped using kernel provided dtbs, because that was preventing booting hirsute images under qemu. As dtb generated by qemu should be used, and there is no kernel provided dtb for qemu platform.
This resulted in unamtched board using dtb provided by u-boot, instead of loading and using dtb provided by the kernel builds.
There are differences between u-boot & kernel dtbs that potentially break compat.
There are two ways of fixing this:
1) bring uboot dtb in-line with the kernel dtb
2) fix qemu uboot to not load dtbs from disk, even when extlinux.conf asks to; and resume loading the matching kernel dtb from disk
Option 1) sounds easier for release.
The diff between u-boot's unmatched dtb & kernel provided dtb is at https:/
Related branches
- Dave Jones (community): Approve
- git-ubuntu developers: Pending requested
-
Diff: 260 lines (+141/-47)7 files modifieddebian/changelog (+17/-0)
debian/patches/0001-cmd-pxe-Use-internal-FDT-if-retrieving-from-FDTDIR-f.patch (+57/-0)
debian/patches/0001-cmd-pxe_utils-sysboot-fix-crash-if-either-board-or-s.patch (+39/-0)
debian/patches/riscv64/sifive-unleashed-default-fdt-files.patch (+0/-21)
debian/patches/riscv64/sifive-unmatched-default-fdt-files.patch (+24/-0)
debian/patches/series (+4/-2)
dev/null (+0/-24)
Changed in u-boot (Ubuntu): | |
milestone: | none → ubuntu-21.04 |
tags: | added: block-proposed-hirsute |
tags: | added: block-proposed |
tags: | removed: block-proposed block-proposed-hirsute |
Changed in u-boot (Ubuntu Focal): | |
assignee: | nobody → William Wilson (jawn-smith) |
description: | updated |
This bug was fixed in the package u-boot - 2021.01+ dfsg-3ubuntu8
--------------- dfsg-3ubuntu8) hirsute; urgency=medium
u-boot (2021.01+
* Skip processing fdtdir on qemu-riscv64_smode target, as it crashes the
riscv qemu VM. LP: #1925267 LP: #1923162
-- Dimitri John Ledkov <email address hidden> Wed, 21 Apr 2021 01:25:13 +0100