I can’t comment on the EDK2 port for RK3588 platforms but I really recommend using U-Boot instead. With the RK3588 platform, we are at a point where we can dd U-Boot on an SD card (only takes ~8MB of space), boot a NixOS ISO (24.05 and later) and install NixOS on an NVMe drive like one does on an Intel/AMD computer.
Only caveat being that HDMI out works only on Linux v6.13 and later so if you prefer not to use a serial console, you need an ISO with Linux v6.13 and later.
May I ask why you recommend u-boot over uefi?
I’m using uefi on a FriendlyElec NanoPi R6C and a FriendlyElec CM3588 NAS and find systemd-boot more convenient than extlinux.
The Collabora developers who are behind the effort to upstream support for RK3588 are contributing their changes to U-Boot, not EDK2. Also because U-Boot is the preferred choice of bootloader on non-server ARM boards and therefore receives some good-enough support from vendors sometimes.
Last time I installed NixOS on the Rock5B I also tried going with EDK2. However it does not ship the right devuce trees for the mainline kernel. The maintainers also said they are not planning to do so, officially only supporting the BSP kernel. As I also could not figure out how to install a custom kernel I just gave up.
I would great though to have a tutorial for installing with mainline uboot + mainline Linux. The wiki has a page on in, but it seems a bit outdated, as it mainly points to some custom forks and flakes.
There’s good news on the kernel side: Mainline 6.13 has the right device tree, so there’s no need for custom kernel any more. That’s why we recommend to set boot.kernelPackages = pkgs.linuxPackages_latest; in the post.
I don’t know if it is OK to resurrect year-old thread but it fits here.
I have Rock 5B with EDK2 build from this repository. Since kernel 6.18 I would say almost everything works (did not try NPU or HDMI input).
Only thing I am unable to use is internal audio jack. It is being reported by wpctl but no sound is being produced…
Audio
├─ Devices:
│ 46. Vnitřnà zvukový systém [alsa]
│ 47. Audio Adapter (Unitek Y-247A) [alsa]
│ 48. Vnitřnà zvukový systém [alsa]
│ 49. Vnitřnà zvukový systém [alsa]
│
├─ Sinks:
│ 58. Audio Adapter (Unitek Y-247A) Analogové stereo [vol: 1.00]
│ * 66. Vnitřnà zvukový systém Headphones [vol: 0.20]
│
├─ Sources:
│ * 59. Audio Adapter (Unitek Y-247A) Mono [vol: 1.00]
│ 68. Vnitřnà zvukový systém Headset Microphone on IN2 [vol: 1.00]
│
├─ Filters:
│
└─ Streams:
For now I am using Unitek USB audio adapter which is not ideal - it is bulky and occupying one of 4 available USBs.
Did anyone manage to make the audio working properly? I tried to play with alsa-utils but found nothing suggesting what’s wrong (but I am unskilled in this area so there is chance I just don’t understand enough what’s going on).
Edit:
Sound card is es8316 and I can see it being defined in linux kernel.