OpenBSD Journal

Call for testing on updated Apple M1/M2 bootloader code

Contributed by Peter N. M. Hansteen on from the Bump my bootloader dept.

Tobias Heider (tobhe@) posted to tech@ asking people with access to the relevant hardware to test updates to the arm64 bootloader code:

From: Tobias Heider <tobhe () openbsd ! org>
Date: Fri, 18 Nov 2022 16:57:12 +0000
To: openbsd-tech
Subject: Help testing Apple M1/M2 bootloader update

Hi all,

we are working on automated bootloader and device-tree updates for Apple
Silicon machines.  This is necessary because both drivers and device trees
are moving targets and without a way to update both we end up in situations
where drivers suddenly stop working.

All of the fw_update(8) infrastructure is already in place, the only thing
missing is installboot(8) automatically copying the new binary to the EFI
system partition.  Before we enable this for everyone we would like to
gather some test feedback to make sure everything works as expected.

For the following you will need a M1/M2 machine running OpenBSD snapshots
with a new enough Asahi bootloader. The easiest way to test that is to check
that you have a M1N1 subdirectory on your EFI system partition. If you don't,
this won't work for you and you will likely need to reinstall at some point
in the future.

To install and test the new bootloader by hand:

1. sysupgrade to the newest snapshot
2. Make sure fw_update downloaded the new bootloader to /etc/firmware/apple-boot.bin
3. Install the firmware to your ESP:
  3.1 Mount your EFI system partition (likely your only MSDOS partition)
      `mount /dev/sd0l /mnt` for me
  3.2 Backup /mnt/M1N1/BOOT.BIN to /mnt/M1N1/BOOT.BIN.old
      (if this does not exist, stop here. Your installation is too old)
  3.3 Copy /etc/firmware/apple-boot.bin to /mnt/M1N1/BOOT.BIN
  3.4 umount /mnt
4. Reboot and be greeted with the new bootloader

In the unlikely case that something went wrong, restore /mnt/M1N1/BOOT.BIN from
your backup. In any case, please let us know how it went.

Cheers,
Tobias

If you have access to the relevant hardware and have the ability to test, please follow Tobias' instructions and report back on any issues. That way you can help making the next OpenBSD/arm64 release even more awesome!


Credits

Copyright © - Daniel Hartmeier. All rights reserved. Articles and comments are copyright their respective authors, submission implies license to publish on this web site. Contents of the archive prior to as well as images and HTML templates were copied from the fabulous original deadly.org with Jose's and Jim's kind permission. This journal runs as CGI with httpd(8) on OpenBSD, the source code is BSD licensed. undeadly \Un*dead"ly\, a. Not subject to death; immortal. [Obs.]