From: "Jordan Justen" <jordan.l.justen@intel.com>
To: devel@edk2.groups.io
Cc: Laszlo Ersek <lersek@redhat.com>,
Ard Biesheuvel <ard.biesheuvel@linaro.org>,
Jordan Justen <jordan.l.justen@intel.com>
Subject: [PATCH 4/5] OvmfPkg/build.sh: Add AARCH64/ARM build and qemu support
Date: Wed, 10 Apr 2019 02:34:23 -0700 [thread overview]
Message-ID: <20190410093424.20365-4-jordan.l.justen@intel.com> (raw)
In-Reply-To: <20190410093424.20365-1-jordan.l.justen@intel.com>
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
---
OvmfPkg/build.sh | 72 ++++++++++++++++++++++++++++++++++++++++--------
1 file changed, 60 insertions(+), 12 deletions(-)
diff --git a/OvmfPkg/build.sh b/OvmfPkg/build.sh
index 812441b9b1..9d787452b5 100755
--- a/OvmfPkg/build.sh
+++ b/OvmfPkg/build.sh
@@ -35,6 +35,8 @@ fi
# Configure defaults for various options
#
+ARCH_AARCH64=no
+ARCH_ARM=no
ARCH_IA32=no
ARCH_X64=no
BUILDTARGET=DEBUG
@@ -71,12 +73,14 @@ do
else
case $LAST_ARG in
-a)
- if [[ x"$arg" != x"IA32" && x"$arg" != x"X64" ]]; then
- echo Unsupported processor architecture: $arg
- echo Only IA32 or X64 is supported
- exit 1
- fi
- eval ARCH_$arg=yes
+ case $arg in
+ AARCH64|ARM|IA32|X64)
+ eval ARCH_$arg=yes
+ ;;
+ *)
+ echo Unsupported processor architecture: $arg
+ exit 1
+ esac
;;
-b)
BUILDTARGET=$arg
@@ -99,7 +103,22 @@ do
shift
done
-if [[ "$ARCH_IA32" == "yes" && "$ARCH_X64" == "yes" ]]; then
+export GCC5_AARCH64_PREFIX=aarch64-linux-gnu-
+export GCC5_ARM_PREFIX=arm-linux-gnueabihf-
+
+if [[ "$ARCH_AARCH64" == "yes" ]]; then
+ PROCESSOR=AARCH64
+ Processor=AArch64
+ BUILD_OPTIONS="$BUILD_OPTIONS -a $PROCESSOR"
+ PLATFORM_BUILD_DIR=ArmVirtQemu-$PROCESSOR
+ BUILD_ROOT_ARCH=$PROCESSOR
+elif [[ "$ARCH_ARM" == "yes" ]]; then
+ PROCESSOR=ARM
+ Processor=Arm
+ BUILD_OPTIONS="$BUILD_OPTIONS -a $PROCESSOR"
+ PLATFORM_BUILD_DIR=ArmVirtQemu-$PROCESSOR
+ BUILD_ROOT_ARCH=$PROCESSOR
+elif [[ "$ARCH_IA32" == "yes" && "$ARCH_X64" == "yes" ]]; then
PROCESSOR=IA32X64
Processor=Ia32X64
BUILD_OPTIONS="$BUILD_OPTIONS -a IA32 -a X64"
@@ -170,6 +189,22 @@ if [ -z "$TARGET_TOOLS" ]; then
fi
case $PROCESSOR in
+ AARCH64)
+ if [ -z "$QEMU_COMMAND" ]; then
+ #
+ # The user didn't set the QEMU_COMMAND variable.
+ #
+ QEMU_COMMAND=qemu-system-aarch64
+ fi
+ ;;
+ ARM)
+ if [ -z "$QEMU_COMMAND" ]; then
+ #
+ # The user didn't set the QEMU_COMMAND variable.
+ #
+ QEMU_COMMAND=qemu-system-aarch64
+ fi
+ ;;
IA32)
if [ -n "$QEMU_COMMAND" ]; then
#
@@ -203,7 +238,14 @@ case $PROCESSOR in
esac
if [ -z "$PLATFORMFILE" ]; then
- PLATFORMFILE=$WORKSPACE/OvmfPkg/OvmfPkg$Processor.dsc
+ case $PROCESSOR in
+ AARCH64|ARM)
+ PLATFORMFILE=$WORKSPACE/ArmVirtPkg/ArmVirtQemu.dsc
+ ;;
+ *)
+ PLATFORMFILE=$WORKSPACE/OvmfPkg/OvmfPkg$Processor.dsc
+ ;;
+ esac
fi
if [[ "$RUN_QEMU" == "yes" ]]; then
@@ -263,8 +305,15 @@ fi
if [[ "$RUN_QEMU" == "yes" ]]; then
- FIRMWARE_IMAGE=$FV_DIR/OVMF.fd
- QEMU_COMMAND="$QEMU_COMMAND -pflash $FIRMWARE_IMAGE"
+ case $PROCESSOR in
+ AARCH64|ARM)
+ FIRMWARE_IMAGE="-bios $FV_DIR/QEMU_EFI.fd"
+ ;;
+ *)
+ FIRMWARE_IMAGE="-pflash $FV_DIR/OVMF.fd"
+ ;;
+ esac
+ QEMU_COMMAND="$QEMU_COMMAND $FIRMWARE_IMAGE"
echo Running: $QEMU_COMMAND "$@"
$QEMU_COMMAND "$@"
exit $?
@@ -273,7 +322,6 @@ fi
#
# Build the edk2 OvmfPkg
#
-echo Running edk2 build for OvmfPkg$Processor
+echo Running edk2 build for $PROCESSOR $PLATFORMFILE
build -p $PLATFORMFILE $BUILD_OPTIONS -b $BUILDTARGET -t $TARGET_TOOLS -n $THREADNUMBER
exit $?
-
--
2.20.1
next prev parent reply other threads:[~2019-04-10 9:35 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-04-10 9:34 [PATCH 1/5] OvmfPkg/build.sh: Require QEMU 1.6 or newer and always enable flash Jordan Justen
2019-04-10 9:34 ` [PATCH 2/5] OvmfPkg/build.sh: Don't automatically -hda qemu parameter Jordan Justen
2019-04-10 9:34 ` [PATCH 3/5] OvmfPkg/build.sh: Move automatic TARGET_TOOLS detection later Jordan Justen
2019-04-10 15:37 ` [edk2-devel] " Philippe Mathieu-Daudé
2019-04-10 19:56 ` Jordan Justen
2019-04-10 9:34 ` Jordan Justen [this message]
2019-04-10 9:34 ` [PATCH 5/5] OvmfPkg/build.sh: Add a cross compiler prefix for AARCH64/ARM Jordan Justen
2019-04-10 14:16 ` [edk2-devel] [PATCH 1/5] OvmfPkg/build.sh: Require QEMU 1.6 or newer and always enable flash Laszlo Ersek
2019-04-10 20:18 ` Jordan Justen
2019-04-11 7:48 ` Laszlo Ersek
2019-04-10 14:45 ` Philippe Mathieu-Daudé
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-list from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20190410093424.20365-4-jordan.l.justen@intel.com \
--to=devel@edk2.groups.io \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox