Added boot target and qemu support for U-Boot on ARMv8
authorTimothy Roscoe <troscoe@inf.ethz.ch>
Fri, 24 May 2019 13:05:21 +0000 (15:05 +0200)
committerDaniel Schwyn <daniel.schwyn@inf.ethz.ch>
Fri, 7 Jun 2019 11:57:22 +0000 (13:57 +0200)
Signed-off-by: Timothy Roscoe <troscoe@inf.ethz.ch>

platforms/Hakefile
tools/qemu-armv8-uboot.bin [new file with mode: 0644]
tools/qemu-wrapper.sh

index 78744d1..dba5d6d 100644 (file)
@@ -728,7 +728,7 @@ let bin_rcce_lu = [ "/sbin/" ++ f | f <- [
       Str "--bios", In SrcTree "tools" "/tools/hagfish/QEMU_EFI.fd"
        ]
       )
-    "Boot QEMU in 64-bit ARM mode emulating a ARM Virtual Machine",
+    "Boot QEMU in 64-bit ARM mode emulating a ARM Virtual Machine using UEFI",
 
     boot "qemu_a57v_debug" [ "armv8" ] ([
       In SrcTree "tools" "/tools/qemu-wrapper.sh",
@@ -737,7 +737,15 @@ let bin_rcce_lu = [ "/sbin/" ++ f | f <- [
       Str "--bios", In SrcTree "tools" "/tools/hagfish/QEMU_EFI.fd",
       Str "--debug", In SrcTree "tools" "/tools/debug.armv8.gdb" ]
       )
-    "Boot QEMU in 64-bit ARM mode emulating a ARM Virtual Machine",
+    "Boot QEMU in 64-bit ARM mode emulating a ARM Virtual Machine using UEFI with debugging enabled",
+
+    boot "qemu_a57v_uboot" [ "armv8" ] ([
+      In SrcTree "tools" "/tools/qemu-wrapper.sh",
+      Str "--image", In BuildTree "root" "/armv8_a57_qemu_image.efi",
+      Str "--arch", Str "armv8",
+      Str "--uboot-img", In SrcTree "tools" "/tools/qemu-armv8-uboot.bin" ]
+      )
+    "Boot QEMU in 64-bit ARM mode emulating a ARM Virtual Machine using U-Boot",
 
     boot_fastmodels "ARM_FastModels_Base_A57x1" [ "armv8" ] 
       "armv8_a57_fvp_base_image"
diff --git a/tools/qemu-armv8-uboot.bin b/tools/qemu-armv8-uboot.bin
new file mode 100644 (file)
index 0000000..c315a8c
Binary files /dev/null and b/tools/qemu-armv8-uboot.bin differ
index 72d5605..4f10a80 100755 (executable)
@@ -24,7 +24,9 @@ BIOS="/home/netos/tftpboot/QEMU_EFI.fd"
 SMP=${SMP:-1}
 # Grab NIC_MODEL from env, if unset default to e1000
 NIC_MODEL="${NIC_MODEL:-e1000e}"
+# U-Boot options
 UBOOT=false
+UBOOT_IMAGE=/home/netos/tftpboot/u-boot.bin
 
 
 usage () {
@@ -44,6 +46,7 @@ usage () {
     echo "    --hagfish <file>   (Hagfish boot loader, defaults to $HAGFISH_LOCATION)"
     echo "    --bios <file>      (ARMv8 QEMU bios,  defaults to $BIOS)"
     echo "    --uboot            (boot U-Boot instead of EFI on ARMv8)"
+    echo "    --uboot-img <file> (U-Boot binary, defaults to $UBOOT_IMAGE)"
     echo "  "
     echo "  The following environment variables are considered:"
     echo "    QEMU_PATH         (Path for qemu-system-* binary)"
@@ -104,6 +107,10 @@ while test $# != 0; do
     "--uboot")
         UBOOT=true
         ;;
+    "--uboot-img")
+        UBOOT=true
+       shift; UBOOT_IMAGE="$1"
+        ;;
     *)
         echo "Unknown option $1 (try: --help)" >&2
         exit 1
@@ -207,7 +214,7 @@ case "$ARCH" in
                  -M gic_version=3 \
                  -smp $SMP"
        if $UBOOT; then
-          QEMU_CMD="$QEMU_CMD -bios /home/netos/tftpboot/u-boot.bin \
+          QEMU_CMD="$QEMU_CMD -bios $UBOOT_IMAGE \
                     -device loader,addr=0x50000000,file=$IMAGE"
        else
            QEMU_CMD="$QEMU_CMD -bios $BIOS \