EDK2: new support for ASRock Rack ALTRAD8UD-1L2T / ALTRAD8UD2-1L2Q and build improvements for Mt Jade and COM-HPC-ALT

/work/git/tianocore# script -c “edk2-platforms/Platform/Ampere/buildfw.sh -m ASRockRack -p Altra1L2T -b RELEASE” buildoutput.txt
Script started, output log file is ‘buildoutput.txt’.
/work/git/tianocore /work/git/tianocore
‘edk2-platforms/Platform/ASRockRack/Altra1L2TPkg/Altra1L2TBoardSetting.cfg’ → ‘/work/git/tianocore/Build/Altra1L2T/Altra1L2TBoardSetting.cfg.txt’
python3: can’t open file ‘/work/git/tianocore/edk2-ampere-tools/nvparam.py’: [Errno 2] No such file or directory
Script done.

Oh! Sorry the documentation probably doesn’t mention this. You need to clone GitHub - AmpereComputing/edk2-ampere-tools: Ampere's unofficial tools for EDK2 development .

1 Like

Thanks!

Wrote a script to simplify it:

#!/bin/bash

if [ ! -f $1 ]; then
	print "No edk2 build file"
	exit
fi

NEW_FW_NAME="Build/Altra1L2T/bios.bin"


cp ampere/ALTRAD8UD-1L2T_3.06.ROM ${NEW_FW_NAME}
cp ampere/MANIFEST Build/Altra1L2T/

dd if=$1 of=${NEW_FW_NAME} bs=1M seek=6 conv=notrunc

cd Build/Altra1L2T/
tar cf fw-`basename $1`.tar bios.bin MANIFEST

Uses manifest file from 3.06 BIOS archive.

EDIT: fixed dd call to use real megabytes.

1 Like

Have to check what I did wrong as boot process ended at memory initialization.

Flashed 3.06 back.

I built EDK2 with Networking and TPM2 disabled. Also would recommend you try flashing with the ampere_flash_bios.sh script on the BMC, with the main CPU powered off, if you haven’t already. Finally, building a DEBUG version instead of RELEASE will also give you much more serial console logging if necessary to track down boot failures.

I give up for now.

Second attempt ended with going back to 3.06 firmware.

Is the EDK2 firmware starting and giving an error on the serial console, or is it still stopping boot after DRAM initialization?

Stops after DRAM. Probably wrong combination of EDK2 with original image.

If you try a DEBUG build, do you get any serial console messages?

Nope. DRAM gets initialised and some time later system reboots.

I probably composed firmware file in wrong way. Anyone want to provide working one for comparison?

I’m away right now, but can do that when I return next week.

1 Like

Managed to create proper image.

EDK2 starts, outputs debug information as expected. Goes up to the moment when TianoCore logo appears on all three monitors (AST, WX2100, RX6700XT). And then hangs:

NetworkInterfaceGetSubnetInfo: There is no Subnet information for IPv6 network interface.
InstallProtocolInterface: 46E44855-BD60-4AB7-AB0D-A679B9447D77 F028A8B8
InstallProtocolInterface: 2C8759D5-5C2D-66EF-925F-B66C101957E2 F02890A0
InstallProtocolInterface: 7A59B29B-910B-4171-8242-A85A0DF25B5B F0288020
InstallProtocolInterface: 55648B91-0E7D-40A3-A9B3-A815D7EADF97 F02894B0
InstallProtocolInterface: 611114F1-A37B-4468-A436-5BDDA16AA240 F02895E0
InstallProtocolInterface: 2C8759D5-5C2D-66EF-925F-B66C101957E2 F02885A0
InstallProtocolInterface: 4F948815-B4B9-43CB-8A33-90E060B34955 F0288D38
InstallProtocolInterface: 7F1647C8-B76E-44B2-A565-F70FF19CD19E F0288F20
InstallProtocolInterface: 41D94CD2-35B6-455A-8258-D4E51334AADD F0286020
InstallProtocolInterface: 3AD9DF29-4501-478D-B1F8-7F7FE70E50F3 F0287638
InstallProtocolInterface: B625B186-E063-44F7-8905-6A74DC6F52B4 F0287120
InstallProtocolInterface: 51DD8B21-AD8D-48E9-BC3F-24F46722C748 F02842E0

Whole boot log: https://marcin.juszkiewicz.com.pl/test/boot.log (info from ports 2200/1/2 combined).

Reported bug in EDK2: [Bug]: EDK2 hangs on AsrockRack platform - [Platform/Ampere/JadePkg] · Issue #828 · tianocore/edk2-platforms · GitHub

1 Like

Hi,
I am pretty interested by using EDK2 but the build process is not traightforward.
Is there any binary releases to download ? Is edk2 compatible with the tpm2 module ?

KR,

Bert

$# dmidecode | grep -A3 ‘Vendor:|Product:’ && sudo lshw -C cpu | grep -A3 ‘product:|vendor:’
Vendor: ASRock Rack Inc.
Version: TianoCore 25.09.24-05 (SYS: 2.10.20230517)
Release Date: 09/24/2025
ROM Size: 32 MB

OK, looks like I booted well on the new bios.

$# nvidia-smi
Wed Sep 24 17:32:14 2025
±----------------------------------------------------------------------------------------+
| NVIDIA-SMI 580.82.09 Driver Version: 580.82.09 CUDA Version: 13.0 |
±----------------------------------------±-----------------------±---------------------+
| GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|=========================================+========================+======================|
| 0 NVIDIA RTX A5000 On | 00000000:01:00.0 Off | Off |
| 30% 28C P8 10W / 230W | 439MiB / 24564MiB | 0% Default |
| | | N/A |
±----------------------------------------±-----------------------±---------------------+
| 1 NVIDIA RTX A5000 On | 00000004:01:00.0 On | Off |
| 30% 46C P8 49W / 230W | 303MiB / 24564MiB | 0% Default |
| | | N/A |
±----------------------------------------±-----------------------±---------------------+

±----------------------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=========================================================================================|
| 0 N/A N/A 3258 G /usr/bin/gnome-shell 414MiB |
| 0 N/A N/A 4278 G /usr/bin/Xwayland 4MiB |
| 1 N/A N/A 3258 G /usr/bin/gnome-shell 259MiB |
±----------------------------------------------------------------------------------------+

OpenBMC works well

Excepted sensors that are not detected (but same behavior than with stock bios)

1 Like

Sorry, I can’t release binaries at the moment.

Yes, EDK2 is compatible with the TPM2 module.

I finally managed to build and install it. It works great.
I don’t know how we can unlock all the platform features (disable internal graphic card and other)
And the menu is quite slow. Perhap’s because of the multiscreen ?
But awesome work indeed.

2 Likes

With some help from @bexcran, I managed to figure out how to build EDKII on my machine and I got it flashed over. I decided to make a repo called bsp.nix for building BSP’s in Nix. I hope these instructions are pretty clear: bsp.nix/platforms/asrock-rack/altrad8ud-1l2t at master · RossComputerGuy/bsp.nix · GitHub

Simple makefile:

#!/bin/make

define AMPERE_COMPILE
	dos2unix edk2-platforms/Platform/Ampere/buildfw.sh
	dos2unix edk2-platforms/Platform/Ampere/Tools/fw_ver.sh
	EDK2_X86_EMULATOR_ENABLE=FALSE EDK2_SHELL_ENABLE=TRUE \
	./edk2-platforms/Platform/Ampere/buildfw.sh \
		--build $1 \
		--manufacturer ASRockRack \
		--platform Altra1L2T \
		--silent
endef

ampere-edk2:
	$(call AMPERE_COMPILE,RELEASE)

ampere-edk2-debug:
	$(call AMPERE_COMPILE,DEBUG)

ampere-edk2-debug-tf-a:
	ln -sf ampere/altra_atf_signed_2.10.20230517.slim altra_atf_signed_2.10.20230517.slim
	$(call AMPERE_COMPILE,DEBUG)
	rm altra_atf_signed_2.10.20230517.slim

It assumes that all repositories are fetched into desired places.

@hrw Why use a Makefile instead of a shell script? To me it adds unnecessary complexity.