Install released binary

Full demo

Below is the full process of upgrading an 0.1.0 debug build to 0.1.1-1 release build.

Ventoy were used and HDMI display were connected. The actual process happened over serial.

asciicast


Where to find releases?

You can find all released Debian packages under GitHub Release page.

Similar to our other firmware packages, each release contains both the binary package as well as the metapackages.

Taking release 0.1.1-1 as an example, you can see 2 packages:

NameSizeType
edk2-cix_0.1.1-1_all.deb4.79 MBBinary package
edk2-orion-o6_0.1.1-1_all.deb2.09 KBMetapackage

As usual, the binary package is the one with a large size, and the metapackage is usually only a few KB.

Also, the binary package will usually share the name with the code repository, while metapackages will usually named after a specific product.

Download and extrace the release

To prepare a BIOS update disk, first, download and extract the package:

mkdir extract
cd extract
wget https://github.com/radxa-pkg/edk2-cix/releases/download/0.1.1-1/edk2-cix_0.1.1-1_all.deb
ar vx *.deb
tar xvf data.tar.xz

Create the BIOS update disk

You should now have BIOS for all supported platforms, as well as some supporting files

$ find usr/share/edk2/
usr/share/edk2/
usr/share/edk2/cix
usr/share/edk2/cix/merak
usr/share/edk2/cix/merak/BuildOptions
usr/share/edk2/cix/merak/BurnImage.efi
usr/share/edk2/cix/merak/FlashUpdate.efi
usr/share/edk2/cix/merak/Shell.efi
usr/share/edk2/cix/merak/VariableInfo.efi
usr/share/edk2/cix/merak/cix_flash.bin
usr/share/edk2/cix/merak/setup.nsh
usr/share/edk2/radxa
usr/share/edk2/radxa/orion-o6
usr/share/edk2/radxa/orion-o6/BuildOptions
usr/share/edk2/radxa/orion-o6/BurnImage.efi
usr/share/edk2/radxa/orion-o6/FlashUpdate.efi
usr/share/edk2/radxa/orion-o6/Shell.efi
usr/share/edk2/radxa/orion-o6/VariableInfo.efi
usr/share/edk2/radxa/orion-o6/cix_flash.bin
usr/share/edk2/radxa/orion-o6/setup.nsh

Copy them to a USB disk formatted in FAT file system, and connect them to the target board.

Optionally, you can use Ventoy to create a BIOS update disk that can also be used to load Linux ISOs, as long as the size is under 4 GiB (due to FAT32 limitation).

Ventoy is a popular ISO multi-boot tool. It also supports booting EFI applications and ARM64 architecture.

First, use Ventoy to create a bootable USB disk. Make sure you select GPT partition table in the option.

You will then reformat the first partition with FAT file system, as the default file system exFAT is not supported by EDK2.

You can copy the EDK2 build artifacts to the first partition as usual.

Enter UEFI Shell

You will need to enter UEFI Shell to run the script to update the BIOS. There are 2 ways to achieve that:

Via UEFI Setup

Press Escape key when prompted on the console. Then enter Boot Manager menu and select UEFI Shell.

Via Ventoy

When you boot the system and missed the Escape prmopt, if there is no other bootable media, EDK2 should boot into Ventoy.

Caution

If screen is connected, Ventoy will boot into graphical mode. Under this mode you will have no output on UART2, but you can still control the menu with it.

You can enable Force Text Mode under the display menu to allow output on UART2.

Inside Ventoy UI you should have Shell.efi listed as an option if you copied everything. Run it to enter UEFI Shell.

Caution

If you built for multiple EDK2 variants you may have multiple Shell.efi listed in Ventoy. They are generally compatible with different platforms, but when in doubt, only use the one come with your target platform, and only copy the EDK2 variant for your platform.

Update BIOS from UEFI Shell

Once inside the UEFI Shell, you should first be greeted by a list of available storage devices and their physical paths.

If you only have the USB disk connected, it should be listed as fs0.

You can rescan the storage device with map -r command, which will reprint the available devices as well.

You can run BIOS flash script from UEFI Shell now. It uses Windows convention, so an example command would be:

fs0:\radxa\orion-o6\setup.nsh

The first backslash is not mandatory:

fs0:radxa\orion-o6\setup.nsh

There is limited auto completion in the UEFI Shell when pressing Tab key.

Running this command will flash your BIOS. Follow its prompt to complete the process.