Hi everyone,
For some reason I need to deploy uefi/edk2 on LS1046ARDB using LSDK 18.09 or older ppa bootflow. I've Tried to compile edk2 for sd card boot this way:
Get the edk2:
git clone https://source.codeaurora.org/external/qoriq/qoriq-components/uefi
git checkout LS1046ARDB-QUEFI_DASH_V5-0_1806
Get the edk2-platforms:
git clone https://source.codeaurora.org/external/qoriq/qoriq-components/edk2-platforms
Compilation:
export PATH=gcc-linaro-4.9-2016.02-x86_64_aarch64-linux-gnu/bin:$PATH
export ARCH=arm64
export CROSS_COMPILE=aarch64-linux-gnu-
source edksetup.sh
cd LS1046aRdbPkg
source ls1046a_env.cshrc
cd ../
make -C BaseTools/Source/C
cd LS1046aRdbPkg
./build.sh RELEASE SD ./path_to_uboot/tools
After execution of above steps, i get this log output:
..........................................
Welcome to LS1046A UEFI Build environment
..........................................
Compiling for RELEASE boot
Using mkimage utility is available at this path: uboot/tools/
(Hint: Usually this is the absolute path of the u-boot/tools directory)
Initializing workspace
Loading previous configuration from uefi/Conf/BuildEnv.sh
WORKSPACE: ./uefi
EDK_TOOLS_PATH: uefi/BaseTools
CONF_PATH: uefi/Conf
Build environment: Linux-4.15.0-99-generic-x86_64-with-Ubuntu-18.04-bionic
Build start time: 19:29:16, May.15 2020
WORKSPACE = uefi
PACKAGES_PATH = uefi/edk2-platforms
ECP_SOURCE = uefi/EdkCompatibilityPkg
EDK_SOURCE = uefi/EdkCompatibilityPkg
EFI_SOURCE = uefi/EdkCompatibilityPkg
EDK_TOOLS_PATH = uefi/BaseTools
CONF_PATH = uefi/Conf
Architecture(s) = AARCH64
Build target = RELEASE
Toolchain = GCC49
Active Platform = uefi/LS1046aRdbPkg/LS1046aRdbPkgNonXipBoot.dsc
Flash Image Definition = uefi/LS1046aRdbPkg/LS1046aRdbPkgNonXipBoot.fdf
Processing meta-data .
build.py...
: error F001: Module uefi/MdeModulePkg/Universal/Variable/EmuRuntimeDxe/EmuVariableRuntimeDxe.inf NOT found in DSC file; Is it really a binary module?
- Failed -
Build end time: 19:29:17, May.15 2020
Build total time: 00:00:01
How can i resolve this problem?
Thanks in advance.
已解决! 转到解答。
SD UEFI image for LS1046ARDB is not supported, only QSPI UEFI image is supported.
Please refer to the following QSPI UEFI flash.
$ cd uefi
$ source edksetup.sh
$ cd LS1046aRdbPkg
$ source ls1046a_env.cshrc
$ cd ../BaseTools
$ make clean
$ make
$ cd ../LS1046aRdbPkg
$./build.sh RELEASE QSPI clean
$./build.sh RELEASE QSPI
UEFI Firmware Image:
uefi/Build/LS1046aRdb/RELEASE_GCC49/FV/LS1046ARDB_EFI.fd
UEFI Non Volatile Variables Image:
uefi/Build/LS1046aRdb/RELEASE_GCC49/FV/LS1046ARDBNV_EFI.fd
SD UEFI image for LS1046ARDB is not supported, only QSPI UEFI image is supported.
Please refer to the following QSPI UEFI flash.
$ cd uefi
$ source edksetup.sh
$ cd LS1046aRdbPkg
$ source ls1046a_env.cshrc
$ cd ../BaseTools
$ make clean
$ make
$ cd ../LS1046aRdbPkg
$./build.sh RELEASE QSPI clean
$./build.sh RELEASE QSPI
UEFI Firmware Image:
uefi/Build/LS1046aRdb/RELEASE_GCC49/FV/LS1046ARDB_EFI.fd
UEFI Non Volatile Variables Image:
uefi/Build/LS1046aRdb/RELEASE_GCC49/FV/LS1046ARDBNV_EFI.fd
Thanks for your answer. I have one more question for clarification:
Is your answer also valid when using uefi with tfa boot flow (LSDK 19.09) with SD Card on LS1046ARDB?
When trying that, uefi start booting then i get this error :