build.sh: add support for qemu q35

Signed-off-by: Piotr Król <piotr.krol@3mdeb.com>
This commit is contained in:
Piotr Król
2025-08-05 11:41:50 +02:00
committed by Michał Żygowski
parent 4f01932157
commit 7204c807c8
+24
View File
@@ -8,6 +8,7 @@ usage() {
echo "${0} CMD"
echo "Available CMDs:"
echo -e "\todroid_h4 - build Dasharo compatible with Hardkernel ODROID H4"
echo -e "\tqemu - build Dasharo compatible with QEMU Q35"
}
INPUT_IMAGE="${INPUT_IMAGE:-image.rom}"
@@ -29,6 +30,14 @@ build_odroid_h4() {
sha256sum Outputs/odroidh4/ifwi-release.bin >Outputs/odroidh4/ifwi-release.bin.sha256
}
build_qemu() {
docker build -t sbl --network=host .
# build_edk2 "edk2-stable202505" "$flags"
build_slimloader qemu ""
echo "Result binary placed in $PWD/Outputs/qemu/SlimBootloader.bin"
sha256sum Outputs/qemu/SlimBootloader.bin >Outputs/qemu/SlimBootloader.bin.sha256
}
build_edk2() {
EDK2_VERSION="$1"
FLAGS="$2"
@@ -57,6 +66,17 @@ build_slimloader() {
platform_data="$2"
input="$(realpath "$INPUT_IMAGE")"
git submodule update --init --checkout --recursive --depth 1
if [ "$platform" = "qemu" ]; then
docker run --rm -i -u $UID -v "$input":/tmp/image.rom -v "$PWD":/home/docker/slimbootloader \
-w /home/docker/slimbootloader sbl /bin/bash <<EOF
set -e
export SBL_KEY_DIR="\${PWD}/SblKeys"
if [ ! -d "\$SBL_KEY_DIR" ]; then
python BootloaderCorePkg/Tools/GenerateKeys.py -k "\$SBL_KEY_DIR"
fi
python BuildLoader.py build "$platform"
EOF
else
mkdir -p PayloadPkg/PayloadBins/
cp edk2/Build/UefiPayloadPkgX64/UniversalPayload.elf PayloadPkg/PayloadBins/
docker run --rm -i -u $UID -v "$input":/tmp/image.rom -v "$PWD":/home/docker/slimbootloader \
@@ -73,6 +93,7 @@ python Platform/AlderlakeBoardPkg/Script/StitchLoader.py \
-o "Outputs/$platform/ifwi-release.bin" \
-p "$platform_data"
EOF
fi
}
if [ $# -ne 1 ]; then
@@ -88,6 +109,9 @@ case "$CMD" in
"odroid_h4" | "odroid_H4" | "ODROID_H4" )
build_odroid_h4 ""
;;
"qemu" | "QEMU" )
build_qemu ""
;;
*)
echo "Invalid command: \"$CMD\""
usage