Coreboot with tianocore payload on apu2
This document describes how to build coreboot image with tianocore payload for PC Engines apu2 platform. Payload is supported since v4.9.0.7 release.
Building coreboot image
- Clone the pce-fw-builder
-
Pull or build docker container:
docker pull pcengines/pce-fw-builder
-
Build v4.9.0.7 image:
./build.sh release v4.9.0.7 apu2
-
Invoke distclean:
./build.sh dev-build $PWD/release/coreboot apu2 distclean
-
Copy config file for target platform
cp $PWD/release/coreboot/configs/config.pcengines_apu2 $PWD/release/coreboot/.config
-
Create full config:
./build.sh dev-build $PWD/release/coreboot apu2 olddefconfig
-
Invoke menuconfig:
./build.sh dev-build $PWD/release/coreboot apu2 menuconfig
-
In menuconfig go to
Payload
menu and next:- In
Add a payload
choose Tianocore coreboot payload package - Deselect PXE ROM
- Select Tianocore build type release
- In
Secondary Payloads
disable all options - Make sure that Tianocore revision is set to
origin/coreboot-4.7.x-uefi
in theInsert a commit’s SHA-1 or a branch name
line. - Rest options in
Payload
menu leave default - Save settings and leave menuconfig
Screenshot from correctly filled Payloads menu:
- In
-
Build coreboot image
./build.sh dev-build $PWD/release/coreboot apu2 CPUS=$(nproc)
-
After successful build coreboot image file is in
release/coreboot/build
directory.
Coreboot + tianocore working example
To enter Boot Manager Menu press F2
or down arrow
after the message shows
up. There is 3s timeout which will proceed directly to booting if no key (or
Enter
) was pressed.
In Boot Manager
user can see what bootable device are visible and what is boot
order. UEFI Shell is shown also and in default settings it is always last boot
option. Selecting the highlighted option will lead to boot process from selected
device.
NOTE: It may happen that even if device is seen in boot menu, tianocore could not boot from it. It is because OS on the selected device uses legacy mode and therefore it is not UEFI-aware system.
In Boot Maintenance Manager
user has access to change some basic options, such
as boot order or console options. However, it is not recommended to change
serial console options, due to possibility of connection lost.
Following example is showing how expected output should looks like and how to move in UEFI shell menu. It was tested on apu4 platform, to which bootable USB stick was attached. As you can see, USB is a primary device in boot order menu. Hence, it always boot from it. To enter UEFI Shell, you need to choose it manually from Boot Manager.