diff --git a/ArmVirtPkg/PlatformCI/.azurepipelines/Ubuntu-GCC5.yml b/ArmVirtPkg/PlatformCI/.azurepipelines/Ubuntu-GCC5.yml index 44a1d3da67..2b6cc11916 100644 --- a/ArmVirtPkg/PlatformCI/.azurepipelines/Ubuntu-GCC5.yml +++ b/ArmVirtPkg/PlatformCI/.azurepipelines/Ubuntu-GCC5.yml @@ -72,6 +72,49 @@ jobs: Run.Flags: $(run_flags) Run: $(should_run) + QEMU_KERNEL_AARCH64_DEBUG: + Build.File: "$(package)/PlatformCI/QemuKernelBuild.py" + Build.Arch: "AARCH64" + Build.Flags: "" + Build.Target: "DEBUG" + Run.Flags: $(run_flags) + Run: $(should_run) + QEMU_KERNEL_AARCH64_RELEASE: + Build.File: "$(package)/PlatformCI/QemuKernelBuild.py" + Build.Arch: "AARCH64" + Build.Flags: "" + Build.Target: "RELEASE" + Run.Flags: $(run_flags) + Run: $(should_run) + QEMU_KERNEL_AARCH64_NOOPT: + Build.File: "$(package)/PlatformCI/QemuKernelBuild.py" + Build.Arch: "AARCH64" + Build.Flags: "" + Build.Target: "NOOPT" + Run.Flags: $(run_flags) + Run: $(should_run) + QEMU_KERNEL_ARM_DEBUG: + Build.File: "$(package)/PlatformCI/QemuKernelBuild.py" + Build.Arch: "ARM" + Build.Flags: "" + Build.Target: "DEBUG" + Run.Flags: $(run_flags) + Run: $(should_run) + QEMU_KERNEL_ARM_RELEASE: + Build.File: "$(package)/PlatformCI/QemuKernelBuild.py" + Build.Arch: "ARM" + Build.Flags: "" + Build.Target: "RELEASE" + Run.Flags: $(run_flags) + Run: $(should_run) + QEMU_KERNEL_ARM_NOOPT: + Build.File: "$(package)/PlatformCI/QemuKernelBuild.py" + Build.Arch: "ARM" + Build.Flags: "" + Build.Target: "NOOPT" + Run.Flags: $(run_flags) + Run: $(should_run) + workspace: clean: all diff --git a/ArmVirtPkg/PlatformCI/PlatformBuildLib.py b/ArmVirtPkg/PlatformCI/PlatformBuildLib.py index 91aa9b31d3..405817cae7 100644 --- a/ArmVirtPkg/PlatformCI/PlatformBuildLib.py +++ b/ArmVirtPkg/PlatformCI/PlatformBuildLib.py @@ -226,13 +226,13 @@ class PlatformBuilder(UefiBuilder, BuildSettingsManager): args += " -cpu cortex-a57" # emulate cpu elif(self.env.GetValue("TARGET_ARCH").upper() == "ARM"): cmd = "qemu-system-arm" - args = "-M virt" + args = "-M virt,highmem=off" args += " -cpu cortex-a15" # emulate cpu else: raise NotImplementedError() # Common Args - args += " -pflash " + Built_FV # path to fw + args += CommonPlatform.FvQemuArg + Built_FV # path to fw args += " -m 1024" # 1gb memory # turn off network args += " -net none" diff --git a/ArmVirtPkg/PlatformCI/QemuBuild.py b/ArmVirtPkg/PlatformCI/QemuBuild.py index f4dcc1d1d2..c651a9501f 100644 --- a/ArmVirtPkg/PlatformCI/QemuBuild.py +++ b/ArmVirtPkg/PlatformCI/QemuBuild.py @@ -27,5 +27,8 @@ class CommonPlatform(): DscName = os.path.join("ArmVirtPkg", "ArmVirtQemu.dsc") + # this platform produces a bootable NOR flash image + FvQemuArg = " -pflash " + import PlatformBuildLib PlatformBuildLib.CommonPlatform = CommonPlatform diff --git a/ArmVirtPkg/PlatformCI/QemuKernelBuild.py b/ArmVirtPkg/PlatformCI/QemuKernelBuild.py new file mode 100644 index 0000000000..f340dfac88 --- /dev/null +++ b/ArmVirtPkg/PlatformCI/QemuKernelBuild.py @@ -0,0 +1,35 @@ +# @file +# Script to Build OVMF UEFI firmware +# +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: BSD-2-Clause-Patent +## +import os +import sys + +sys.path.append(os.path.dirname(os.path.abspath(__file__))) +from PlatformBuildLib import SettingsManager +from PlatformBuildLib import PlatformBuilder + + # ####################################################################################### # + # Common Configuration # + # ####################################################################################### # +class CommonPlatform(): + ''' Common settings for this platform. Define static data here and use + for the different parts of stuart + ''' + PackagesSupported = ("ArmVirtPkg",) + ArchSupported = ("AARCH64", "ARM") + TargetsSupported = ("DEBUG", "RELEASE", "NOOPT") + Scopes = ('armvirt', 'edk2-build') + WorkspaceRoot = os.path.realpath(os.path.join( + os.path.dirname(os.path.abspath(__file__)), "..", "..")) + + DscName = os.path.join("ArmVirtPkg", "ArmVirtQemuKernel.dsc") + + # this platform produces an executable image that is invoked using + # the Linux/arm64 kernel boot protocol + FvQemuArg = " -kernel " + +import PlatformBuildLib +PlatformBuildLib.CommonPlatform = CommonPlatform