To add initial support for one device, you need to add four files at a minimum. For example:
This commit is a good example:
This file should be located at
It was retrieved from
/sys/firmware/fdt in the prerequisite step.
This is the EDK II Platform Description file. We usually define values specific to one device here. So, as you can see, you need to modify some lines according to your own device:
PLATFORM_NAME: codename of your device
DEVICE_DXE_FV_COMPONENTS: path to your
PcdMipiFrameBufferWidth: width of screen resolution
PcdMipiFrameBufferHeight: height of screen resolution
PcdGuiDefaultDPI: the DPI of your screen
It defines files that are specific to this device, like some drivers, ACPI Tables and mainline device tree blob.
You can leave this file empty if you really don’t know what to do. Your device will still boot.
ButtonsDxe will be the most common driver to be placed here. You may have to patch it to have working buttons in UEFI.
TODO: explain how to patch it
You don’t need to care about it, at least for now
This is required if you need the Mass Storage function provided by the built-in mainline Linux kernel.
Some SoC has a file named
xxxxxx-generic-msd.dtb. You can try using that file.
It defines values used by the build script.
BOOTIMG_OS_VERSION can be found when unpacking boot image in the prerequisite step.