- From https://github.com/edk2-porting/edk2-rk3588/releases/tag/v0.9.1
- For example, for `rock-5b_UEFI_Release_v0.9.1.img`
- `UEFI_EDK2_BOARD_ID` is `rock-5b`
- **Important**: this has no effect unless optional extension is enabled
- to test this out:
- make sure to read carefully the instructions at https://github.com/edk2-porting/edk2-rk3588/blob/master/README.md
- suppose you previously built the regular u-boot version with:
- `./compile.sh BOARD=rock-5b BRANCH=legacy RELEASE=jammy`
- now you can build the UEFI version with:
- `./compile.sh BOARD=rock-5b BRANCH=legacy RELEASE=jammy EXT=uefi-edk2-rk3588`
- write the produced image to SD or eMMC and boot it
- use normally, or enter "UMS" mode by selecting that option in the grub menu
- You can write image to eMMC, boot it, enter UMS, write it again to NVMe, reboot, press <ESC> in UEFI and boot from NVMe
- Also works if .img is written to eg USB stick, and UEFI edk2 is separately deployed to SPI flash
- **Important**: make _absolutely_ sure you are able to force Maskrom mode (by shorting pins, pressing buttons, etc) before writing an UEFI image to eMMC; UEFI has no RockUSB ("Loader mode" support) at all. The new "initramfs-usb-gadget-ums" extension hopes to address this, but it is not guaranteed to work.
- this extension is _100% optional_ and shouldn't adversely affect any builds if not enabled
- requires `UEFI_EDK2_BOARD_ID` to be set in board file, so we know which UEFI/edk2 build to use
- it finds the latest edk2 version from GitHub automatically (currently `v0.9.1`)
- it downloads (and caches) the correct edk2 build image automatically
- if forces certain aspects of the image:
- must use GPT partitioning
- must NOT use a separate /boot partition
- it _disables_ the building and deploying of u-boot _completely_ (thus blobs etc are from edk2)
- it creates a GPT `"uboot"` partition pointing to edk2's FIT, required by SPL
- this extension:
- automatically enables 'grub-with-dtb'
- automatically enable 'initramfs-usb-gadget-ums', to compensate for lack of ums/rockusb since we dont have u-boot anymore
- this optional extension adds an initramfs script that:
- enumerates and filters all block devices
- exposes each device as an UMS (USB Mass Storage) in an USB Gadget
- loops forever with info (board never boots)
- the idea here is to compensate for UEFI's lack of "ums" or "rockusb" mode that's present in u-boot
- it also allows to expose USB/NVMe devices that might or not be detected by bootloader, if the kernel works
- this allows user to enter UMS mode from GRUB
- for usage with the `initramfs-usb-gadget-ums` extension
- has no effect unless `initramfs-usb-gadget-ums` extension is enabled together with `grub-with-dtb`
Improve naming confusion by changing build framework defaults. Set framework defaults VENDOR to Armbian-unofficial for self build images. Unsupported boards and unsupported distribution have framework defaults, except VENDOR and VENDORURL. We build images with predefined values.
There are many changes in this file and its impossible to cover this with a patch for now current and all kernels back
We are using same hack in UWE drivers.