diff --git a/meta-arm/recipes-bsp/uefi/edk2-firmware.inc b/meta-arm/recipes-bsp/uefi/edk2-firmware.inc index 63c422f6..21bc58dd 100644 --- a/meta-arm/recipes-bsp/uefi/edk2-firmware.inc +++ b/meta-arm/recipes-bsp/uefi/edk2-firmware.inc @@ -71,9 +71,14 @@ export BTOOLS_PATH = "${EDK_TOOLS_PATH}/BinWrappers/PosixLike" EDK_COMPILER ?= "GCC5" export GCC5_AARCH64_PREFIX = "${TARGET_PREFIX}" +export GCC5_ARM_PREFIX = "${TARGET_PREFIX}" EDK_COMPILER:toolchain-clang = "CLANG38" export CLANG38_AARCH64_PREFIX = "${TARGET_PREFIX}" +export CLANG38_ARM_PREFIX = "${TARGET_PREFIX}" + +#FIXME - arm32 doesn't work with clang due to a linker issue +TOOLCHAIN:arm = "gcc" do_configure:prepend() { sed -i -e "s#-target ${HOST_ARCH}-linux-gnu*#-target ${HOST_SYS}#" ${S}/BaseTools/Conf/tools_def.template diff --git a/meta-arm/recipes-bsp/uefi/edk2-firmware_%.bbappend b/meta-arm/recipes-bsp/uefi/edk2-firmware_%.bbappend index f65cb094..7a39bb03 100644 --- a/meta-arm/recipes-bsp/uefi/edk2-firmware_%.bbappend +++ b/meta-arm/recipes-bsp/uefi/edk2-firmware_%.bbappend @@ -3,6 +3,15 @@ EDK2_PLATFORM:qemuarm64-secureboot = "ArmVirtQemu-AARCH64" EDK2_PLATFORM_DSC:qemuarm64-secureboot = "ArmVirtPkg/ArmVirtQemu.dsc" EDK2_BIN_NAME:qemuarm64-secureboot = "QEMU_EFI.fd" +COMPATIBLE_MACHINE:qemuarm64 = "qemuarm64" +EDK2_PLATFORM:qemuarm64 = "ArmVirtQemu-AARCH64" +EDK2_PLATFORM_DSC:qemuarm64 = "ArmVirtPkg/ArmVirtQemu.dsc" +EDK2_BIN_NAME:qemuarm64 = "QEMU_EFI.fd" + +COMPATIBLE_MACHINE:qemuarm = "qemuarm" +EDK2_PLATFORM:qemuarm = "ArmVirtQemu-ARM" +EDK2_PLATFORM_DSC:qemuarm = "ArmVirtPkg/ArmVirtQemu.dsc" +EDK2_BIN_NAME:qemuarm = "QEMU_EFI.fd" COMPATIBLE_MACHINE:qemu-generic-arm64 = "qemu-generic-arm64" DEPENDS:append:qemu-generic-arm64 = " trusted-firmware-a coreutils-native" @@ -21,3 +30,11 @@ do_install:append:qemu-generic-arm64() { # QEMU requires that the images be minimum of 256M in size truncate -s 256M ${D}/firmware/SBSA_FLASH*.fd } + +do_install:append:qemuarm64() { + install ${B}/Build/${EDK2_PLATFORM}/${EDK2_BUILD_MODE}_${EDK_COMPILER}/FV/${EDK2_BIN_NAME} ${D}/firmware/ +} + +do_install:append:qemuarm() { + install ${B}/Build/${EDK2_PLATFORM}/${EDK2_BUILD_MODE}_${EDK_COMPILER}/FV/${EDK2_BIN_NAME} ${D}/firmware/ +} diff --git a/meta-arm/recipes-kernel/linux/linux-yocto/efi.cfg b/meta-arm/recipes-kernel/linux/linux-yocto/efi.cfg new file mode 100644 index 00000000..00be1bc6 --- /dev/null +++ b/meta-arm/recipes-kernel/linux/linux-yocto/efi.cfg @@ -0,0 +1,2 @@ +CONFIG_ACPI=y +CONFIG_EFI=y diff --git a/meta-arm/recipes-kernel/linux/linux-yocto_%.bbappend b/meta-arm/recipes-kernel/linux/linux-yocto_%.bbappend index cf093f04..1d01daa0 100644 --- a/meta-arm/recipes-kernel/linux/linux-yocto_%.bbappend +++ b/meta-arm/recipes-kernel/linux/linux-yocto_%.bbappend @@ -16,3 +16,9 @@ FILESEXTRAPATHS:prepend:qemuarm-secureboot = "${ARMFILESPATHS}" SRC_URI:append:qemuarm-secureboot = " \ file://tee.cfg \ " + +FILESEXTRAPATHS:prepend:qemuarm64 = "${ARMFILESPATHS}" +SRC_URI:append:qemuarm64 = " file://efi.cfg" + +FILESEXTRAPATHS:prepend:qemuarm = "${ARMFILESPATHS}" +SRC_URI:append:qemuarm = " file://efi.cfg"