[Bug 1846329] [NEW] [FFe] 2019.07 to support Pi4 boot

Dave Jones dave.jones at canonical.com
Wed Oct 2 11:48:13 UTC 2019


Public bug reported:

Impact
======

The proposed version supports booting Ubuntu on the Raspberry Pi 4, both
by providing a Pi 4 compatible variant of u-boot (which requires the
version bump to 2019.07), and by detecting and (if required) migrating
the boot configuration to support the Pi 4 (by calling different u-boot
binaries depending upon the host Pi's version).

The package has been built in the following PPA:
https://launchpad.net/~waveform/+archive/ubuntu/ubpi4/+packages

A git-ubuntu branch with the proposed changes is available at:
https://code.launchpad.net/~waveform/ubuntu/+source/u-boot/+git/u-boot/+ref/ubuntu-2019.07-pi4
(the version in this branch is lower than the PPA as the branch has been
rebased for clarity, compressing all the minor modifications done during
testing)


Test Case
==========

Upon installing the new package on a system with the existing u-boot
setup (a single u-boot binary under /boot/firmware and a config.txt that
points to it as the kernel), the postinst script should detect this
scenario and migrate the configuration to one with multiple u-boot
binaries under /boot/firmware and a config.txt with selective sections
pointing to them. After installation, the card should still boot
successfully on all supported models (at present the Pi4 will only get
to the u-boot stage, pending kernel work).

This process has been tested on the Pi 2 (armhf only), 3, 3A+, 3B+, and
4 (under armhf and arm64 on relevant platforms). The scripts for
detecting and migrating the old boot configuration to the new have been
tested with the Eoan and Bionic boot configurations, with a view to
eventual SRU of this package to Bionic (for Pi 4 support on LTS).


Regression Potential
====================

Testing with the older Bionic firmware led to several changes (that led
to re-testing on the Eoan firmware), which has increased confidence in
the low probability of regressions at least as regards the Pi. The
certification team will test other relevant platforms using u-boot to
ensure they are still capable of booting with the 2019.07 version (other
than the pi's postinst script, no other scripts have changed so boot
capability is all that requires testing).

The boot config migration code takes some pains to detect the old and
new states, both by hash checking and (as fallback) by rudimentary
content analysis. It is conservative in choosing when to migrate (only
when both a package version check passes and detection confirms the old
boot configuration is present), and provides a backup of the original
configuration (in fact, an "unmigration" routine is included in the
library, primarily for testing).

At this point, the major concern for regression is other platforms
relying upon u-boot.

** Affects: u-boot (Ubuntu)
     Importance: Undecided
         Status: New

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

Title:
  [FFe] 2019.07 to support Pi4 boot

Status in u-boot package in Ubuntu:
  New

Bug description:
  Impact
  ======

  The proposed version supports booting Ubuntu on the Raspberry Pi 4,
  both by providing a Pi 4 compatible variant of u-boot (which requires
  the version bump to 2019.07), and by detecting and (if required)
  migrating the boot configuration to support the Pi 4 (by calling
  different u-boot binaries depending upon the host Pi's version).

  The package has been built in the following PPA:
  https://launchpad.net/~waveform/+archive/ubuntu/ubpi4/+packages

  A git-ubuntu branch with the proposed changes is available at:
  https://code.launchpad.net/~waveform/ubuntu/+source/u-boot/+git/u-boot/+ref/ubuntu-2019.07-pi4
  (the version in this branch is lower than the PPA as the branch has
  been rebased for clarity, compressing all the minor modifications done
  during testing)

  
  Test Case
  ==========

  Upon installing the new package on a system with the existing u-boot
  setup (a single u-boot binary under /boot/firmware and a config.txt
  that points to it as the kernel), the postinst script should detect
  this scenario and migrate the configuration to one with multiple
  u-boot binaries under /boot/firmware and a config.txt with selective
  sections pointing to them. After installation, the card should still
  boot successfully on all supported models (at present the Pi4 will
  only get to the u-boot stage, pending kernel work).

  This process has been tested on the Pi 2 (armhf only), 3, 3A+, 3B+,
  and 4 (under armhf and arm64 on relevant platforms). The scripts for
  detecting and migrating the old boot configuration to the new have
  been tested with the Eoan and Bionic boot configurations, with a view
  to eventual SRU of this package to Bionic (for Pi 4 support on LTS).

  
  Regression Potential
  ====================

  Testing with the older Bionic firmware led to several changes (that
  led to re-testing on the Eoan firmware), which has increased
  confidence in the low probability of regressions at least as regards
  the Pi. The certification team will test other relevant platforms
  using u-boot to ensure they are still capable of booting with the
  2019.07 version (other than the pi's postinst script, no other scripts
  have changed so boot capability is all that requires testing).

  The boot config migration code takes some pains to detect the old and
  new states, both by hash checking and (as fallback) by rudimentary
  content analysis. It is conservative in choosing when to migrate (only
  when both a package version check passes and detection confirms the
  old boot configuration is present), and provides a backup of the
  original configuration (in fact, an "unmigration" routine is included
  in the library, primarily for testing).

  At this point, the major concern for regression is other platforms
  relying upon u-boot.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/u-boot/+bug/1846329/+subscriptions



More information about the foundations-bugs mailing list