Skip to content

Releases: fiebrandt/edk2-rk3588

Release list

opi5max-v1.1

Choose a tag to compare

@fiebrandt fiebrandt released this 23 Oct 23:31

This release is based on upstream https://github.com/edk2-porting/edk2-rk3588/releases/tag/v1.1, adding additional device support:

Orange Pi 5 Max support for edk2-rk3588: working on-board 2.5GbE, HDMI, faster boot, plus experimental PCIe MSI (GIC ITS/IORT) for ACPI.

Images

Image Source SHA-256
orangepi-5-max_UEFI_Release_opi5max-v1.1p1.img (recommended) branch orangepi-5-max (c7250aa4) bc262bb46309cc425900750972642c5b45ef1c296f802324098edb0c3b875be4
orangepi-5-max_UEFI_Release_opi5max-v1.1.img tag opi5max-v1.1 63819a037a6b933480282da3dea270bd121c2b14783d98eddc565124f5b0ff1a

v1.1p1 is a rebuild of v1.1 with rkbin's default DDR init blob; nothing else changed. Both are based on upstream v1.1.

Flashing to SPI

The image is a complete SPI NOR image, flashed at offset 0. It is not an SD card image. Remove any boot media with its own firmware (for example a U-Boot SD card) from the SD slot, or it may be started instead of the SPI firmware.

Option A: from Linux running on the board

Requires the SPI flash to be visible as /dev/mtd0 (for example Armbian or Orange Pi's Linux) and mtd-utils:

sudo flash_erase /dev/mtd0 0 0
sudo flashcp -v orangepi-5-max_UEFI_Release_opi5max-v1.1p1.img /dev/mtd0

Option B: MaskROM over USB with rkdeveloptool

  1. Build the standard RK3588 MaskROM loader from rkbin. It only runs in RAM during flashing and isn't written to the board:

    git clone https://github.com/rockchip-linux/rkbin
    cd rkbin
    ./tools/boot_merger RKBOOT/RK3588MINIALL.ini   # creates rk3588_loader_v1.24.114.bin
  2. Connect the board's upper-left USB-A port to your PC with a USB-A to USB-A cable.

  3. Enter MaskROM mode, either way:

    • hold the MaskROM button while powering on, or
    • once this firmware is installed, press F4 ("Reset to MaskROM") at the boot screen.
      lsusb should then show 2207:350b.
  4. Flash:

    sudo rkdeveloptool db rk3588_loader_v1.24.114.bin
    sudo rkdeveloptool cs 9       # select SPI NOR
    sudo rkdeveloptool wl 0 orangepi-5-max_UEFI_Release_opi5max-v1.1p1.img
    sudo rkdeveloptool rd         # reset

To check the write, read the image back with rkdeveloptool rl 0 13628 readback.bin and compare its SHA-256 with the one above.

After flashing, the board boots into UEFI. The setup menu (Esc at the boot screen) has an ACPI / Device Tree section, which includes the experimental PCIe MSI Mode (default: Disabled).

Thermal note: CPU clocks are fixed in ACPI mode

In ACPI mode the firmware sets the CPU cluster clocks once at boot (default preset: Maximum, i.e. A76 ≈ 2.1–2.4 GHz, A55 ≈ 1.7–1.8 GHz) and the OS cannot scale them: the ACPI tables contain no CPU performance states and no thermal zones. The CPU therefore never throttles, whatever OS you run.

In addition, the RK3588's hardware over-temperature reset (TSADC) is not armed by the firmware. In ACPI mode it is only active if your OS has a driver that programs it.

Measured on an Orange Pi 5 Max with the small stock heatsink: ~60 °C at idle, 79 °C after 50 s of load on the four A76 cores, still rising.

Recommendations:

  • Use a heatsink, ideally with a fan, for sustained loads.
  • Monitor the CPU temperature under your OS.
  • If cooling is limited, lower the clocks in firmware setup: Rockchip Platform Configuration → CPU Performance → CPUB01/CPUB23 Clock Preset (Minimum or Custom).
  • In Device Tree or Both mode, Linux handles frequency scaling, throttling and the hardware shutdown itself.