This repository contains a port of Tianocore EDK II to various Rockchip RK356x based boards:
If you want to build the image, checkout the repository and run:
$ make sdcard
Prebuild images are also provided for stable ports and are available in the release section.
Note: The ROCK3 Compute Module port is still work in progress: as such no prebuild images are released for those boards.
In order to have the board booting in UEFI, the firmware has to be located in one of the supported boot devices. If the device (SD card, eMMC) are removable, the easiest way is to use dd
, Etcher, etc. to write the appropriate .img file to the device.
Connect a serial console to UART2 using settings 115200 8n1
.
OS | Version | Supported hardware | Notes |
---|---|---|---|
ESXi-Arm | 1.12 | HDMI, USB2, USB3, serial, PCIe, ethernet | |
Fedora | 38 | HDMI, USB2, USB3, serial, PCIe, thermal sensors | Needs irqchip.gicv3_nolpi=1 for MSI support |
FreeBSD | 14.0-CURRENT | ? | Mangled serial output, boot stuck waiting for random seed |
NetBSD | 9.99.x | HDMI, USB2, USB3, serial, SD card, PCIe, eMMC, SATA, ethernet, thermal sensors, watchdog | |
OpenBSD | 7.0-current | HDMI, USB2, USB3, serial | To use HDMI console, enter set tty fb0 at the bootloader prompt. |
Ubuntu | 21.04 | HDMI, USB2, USB3, serial, PCIe, thermal sensors | Needs irqchip.gicv3_nolpi=1 for MSI support |
Windows PE | ? | HDMI, USB3, PCIe | BSOD when plugging device in to USB2 port (#2) |
The divider register in the RK356x's SDHCI controller does not work, so to change the eMMC card clock we have to do it through the CRU. This is exposed to the OS as an ACPI Device-Specific Method (_DSM).
The _DSM control method parameters for the Set Card Clock function are as follows:
The actual card clock rate in Hz. Will be less than or equal to the target clock rate. Returns 0 if the target clock rate could not be set.