[SRU] 2019.07 to support Pi4 boot
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
u-boot (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned | ||
Bionic |
Fix Released
|
Undecided
|
Dave Jones |
Bug Description
Impact
======
The current stable release (bionic) does not support booting on the Raspberry Pi 4. Several packages need back-porting from devel to support this, along with a new kernel. In addition, there are now changes in the back-port that require updates to focal.
Bionic back-port branch:
https:/
Focal branch:
https:/
Builds of packages for both releases available from the following PPA (along with all packages required for testing the bionic back-port):
https:/
Test Case
=========
* Attempt to boot the latest bionic image (18.04.3) on a pi4; note failure
* Move the SD card to a pi3 and boot successfully
* Ensure all packages are up to date (apt update/upgrade)
* sudo add-apt-repository ppa:waveform/pi4
* sudo apt upgrade
* sudo reboot
* Ensure boot proceeds successfully on the pi3
* Verify facilities (USB peripherals, USB mass storage, wifi, bluetooth, audio, etc.) work
* sudo apt install linux-image-
* sudo reboot
* Ensure boot proceeds successfully on the pi3
* Verify facilities (USB peripherals, USB mass storage, wifi, bluetooth, audio, etc.) work
* Move the SD card back to the pi4
* Ensure boot proceeds successfully on the pi4
* Verify facilities (USB peripherals, USB mass storage, wifi, bluetooth, audio, etc.) work
* Repeat for both archs (armhf and arm64)
Regression Potential
=======
Plenty; pi4 support on bionic requires back-ports of flash-kernel, u-boot, linux-firmware-
Changed in u-boot (Ubuntu Bionic): | |
assignee: | nobody → Dave Jones (waveform) |
status: | New → In Progress |
summary: |
- [FFe] 2019.07 to support Pi4 boot + [SRU] 2019.07 to support Pi4 boot |
description: | updated |
description: | updated |
tags: | added: id-5db0502bcb3f2112497e1b92 |
description: | updated |
description: | updated |
This is a review of your branch ubuntu-2019.07-pi4 with commit hash 94f89d8. I adjusted it to make my review eaiser (mainly splitting some commits). I've pushed to https:/ /code.launchpad .net/~racb/ ubuntu/ +source/ u-boot/ +git/u- boot/+ref/ review/ waveform/ ubuntu- 2019.07- pi4 if you want to use it, but this isn't necessary.
In general, excellent work! The approach you've taken seems nice and clean, which is impressive given how tricky things are in this area.
debian/changelog:
Please squash all changelog entries into a single one for 2019.07+ dfsg-1ubuntu1. That also means that the changelog should describe only the differences from 2019.04+ dfsg-2ubuntu3, describing only the end result as visible from the archive and skipping any churn that took place during development in your branch.
Looking at your PPA, rather than using the orig tarball as published by upstream, that orig tarball is supposed to have been repacked to remove non-DFSG code, according to Files-Excluded in debian/copyright. uscan(1) can help with this. But in this case an upload of this upstream version had already been made by Debian. Therefore, please use the repacked orig tarball as published by Debian (eg. as archived at https:/ /launchpad. net/debian/ +source/ u-boot/ 2019.07+ dfsg-1) to avoid potential mismatches. There's no point in changing anything in your PPA now; your sponsor (presumably me) should be able to correct this when uploading.
Only debian/ patches/ am57xx/ omap5_distro_ bootcmd actually needed updating, and it was more than a refresh. I suggest avoiding using the word "refresh" to describe the change, and please drop the unnecessary refresh of the other patches.
Bump to v2019.07:
This is not practical to review. I understand it is necessary for rpi4 support. I'll leave it to the release team to make a call on the regression risk.
python-pyelftools dependency: note that this binary package is in universe even though its source is in main. Are you expecting to put u-boot-rpi in main? I only see it in universe currently.
debian/ patches/ rpi4.patch:
Typo "Descrpition"
Consider doing this with multiple patches, one per commit, depending on how often you expect you need to update it against Andrei Gherzan's work. Maybe easier to leave it now it's done. Your choice.
Makefile: DTB addition duplicates existing bcm2837-rpi-3-b.dtb entry
rpi_4_defconfig drops: USB_ETHER_ LAN78XX= y USB_ETHER_ SMSC95XX= y SUPPORT_ RAW_INITRD= y ENV_IS_ IN_FAT= y SUPPORT_ RAW_INITRD and CONFIG_ ENV_IS_ IN_FAT in particular strike me as non-pi4-specific which is why I found this surprising.
-CONFIG_USB_DWC2=y
-CONFIG_
-CONFIG_
-CONFIG_
-CONFIG_
...are all of these intentional? CONFIG_
bcm2835_sdhci.c: dev_get_driver_data call: no error checking now this is a dynamic lookup and not a constant?
Quite a bit of RPi code is touched - for example the introduction of bcm2835-common.dtsi and status -> status_r/status_w. Are all rpi hardware variants tested against this branch?
debian/ patches/ rpi-import- mkknlimg. patch:
As we discussed, I'm not sure if we should drop this change (as it's not strictly necessary for the rpi4) or keep it (as it cleans things up and will make future backports easier). The trade-off ...