From patchwork Sat Mar 9 00:48:17 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Laszlo Ersek X-Patchwork-Id: 1053770 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=redhat.com Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 44GQkL00T6z9s3q for ; Sat, 9 Mar 2019 11:49:45 +1100 (AEDT) Received: from localhost ([127.0.0.1]:52051 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1h2QBM-0000QK-0p for incoming@patchwork.ozlabs.org; Fri, 08 Mar 2019 19:49:44 -0500 Received: from eggs.gnu.org ([209.51.188.92]:57871) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1h2QAM-0000Oj-JX for qemu-devel@nongnu.org; Fri, 08 Mar 2019 19:48:44 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1h2QAL-0001Zu-0w for qemu-devel@nongnu.org; Fri, 08 Mar 2019 19:48:42 -0500 Received: from mx1.redhat.com ([209.132.183.28]:40022) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1h2QAK-0001VT-Kk for qemu-devel@nongnu.org; Fri, 08 Mar 2019 19:48:40 -0500 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id EA3E883F3B for ; Sat, 9 Mar 2019 00:48:39 +0000 (UTC) Received: from lacos-laptop-7.usersys.redhat.com (ovpn-125-221.rdu2.redhat.com [10.10.125.221]) by smtp.corp.redhat.com (Postfix) with ESMTP id 31CC94532; Sat, 9 Mar 2019 00:48:37 +0000 (UTC) From: Laszlo Ersek To: berrange@redhat.com, imammedo@redhat.com, kraxel@redhat.com, mst@redhat.com, philmd@redhat.com, qemu-devel@nongnu.org Date: Sat, 9 Mar 2019 01:48:17 +0100 Message-Id: <20190309004826.9027-2-lersek@redhat.com> In-Reply-To: <20190309004826.9027-1-lersek@redhat.com> References: <20190309004826.9027-1-lersek@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.27]); Sat, 09 Mar 2019 00:48:39 +0000 (UTC) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PATCH 01/10] roms: lift "edk2-funcs.sh" from "tests/uefi-test-tools/build.sh" X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" Extract the dense logic for architecture and toolchain massaging from "tests/uefi-test-tools/build.sh", to a set of small functions. We'll reuse these functions for building full platform firmware images. Signed-off-by: Laszlo Ersek Reviewed-by: Philippe Mathieu-Daudé Tested-by: Philippe Mathieu-Daudé --- roms/edk2-funcs.sh | 240 ++++++++++++++++++++ tests/uefi-test-tools/build.sh | 97 +------- 2 files changed, 246 insertions(+), 91 deletions(-) diff --git a/roms/edk2-funcs.sh b/roms/edk2-funcs.sh new file mode 100644 index 000000000000..908c7665c6ed --- /dev/null +++ b/roms/edk2-funcs.sh @@ -0,0 +1,240 @@ +# Shell script that defines functions for determining some environmental +# characteristics for the edk2 "build" utility. +# +# This script is meant to be sourced. +# +# Copyright (C) 2019, Red Hat, Inc. +# +# This program and the accompanying materials are licensed and made available +# under the terms and conditions of the BSD License that accompanies this +# distribution. The full text of the license may be found at +# . +# +# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT +# WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. + + +# Verify whether the QEMU system emulation target is supported by the UEFI spec +# and edk2. Print a message to the standard error, and return with nonzero +# status, if verification fails. +# +# Parameters: +# $1: QEMU system emulation target +qemu_edk2_verify_arch() +{ + local emulation_target="$1" + local program_name=$(basename -- "$0") + + case "$emulation_target" in + (arm|aarch64|i386|x86_64) + ;; + (*) + printf '%s: unknown/unsupported QEMU system emulation target "%s"\n' \ + "$program_name" "$emulation_target" >&2 + return 1 + ;; + esac +} + + +# Translate the QEMU system emulation target to the edk2 architecture +# identifier. Print the result to the standard output. +# +# Parameters: +# $1: QEMU system emulation target +qemu_edk2_get_arch() +{ + local emulation_target="$1" + + if ! qemu_edk2_verify_arch "$emulation_target"; then + return 1 + fi + + case "$emulation_target" in + (arm) + printf 'ARM\n' + ;; + (aarch64) + printf 'AARCH64\n' + ;; + (i386) + printf 'IA32\n' + ;; + (x86_64) + printf 'X64\n' + ;; + esac +} + + +# Translate the QEMU system emulation target to the gcc cross-compilation +# architecture identifier. Print the result to the standard output. +# +# Parameters: +# $1: QEMU system emulation target +qemu_edk2_get_gcc_arch() +{ + local emulation_target="$1" + + if ! qemu_edk2_verify_arch "$emulation_target"; then + return 1 + fi + + case "$emulation_target" in + (arm|aarch64|x86_64) + printf '%s\n' "$emulation_target" + ;; + (i386) + printf 'i686\n' + ;; + esac +} + + +# Determine the gcc cross-compiler prefix (if any) for use with the edk2 +# toolchain. Print the result to the standard output. +# +# Parameters: +# $1: QEMU system emulation target +qemu_edk2_get_cross_prefix() +{ + local emulation_target="$1" + local gcc_arch + local host_arch + + if ! gcc_arch=$(qemu_edk2_get_gcc_arch "$emulation_target"); then + return 1 + fi + + host_arch=$(uname -m) + + if [ "$gcc_arch" == "$host_arch" ] || + ( [ "$gcc_arch" == i686 ] && [ "$host_arch" == x86_64 ] ); then + # no cross-compiler needed + : + else + printf '%s-linux-gnu-\n' "$gcc_arch" + fi +} + + +# Determine the edk2 toolchain tag for the QEMU system emulation target. Print +# the result to the standard output. Print a message to the standard error, and +# return with nonzero status, if the (conditional) gcc version check fails. +# +# Parameters: +# $1: QEMU system emulation target +qemu_edk2_get_toolchain() +{ + local emulation_target="$1" + local program_name=$(basename -- "$0") + local cross_prefix + local gcc_version + + if ! qemu_edk2_verify_arch "$emulation_target"; then + return 1 + fi + + case "$emulation_target" in + (arm|aarch64) + printf 'GCC5\n' + ;; + + (i386|x86_64) + if ! cross_prefix=$(qemu_edk2_get_cross_prefix "$emulation_target"); then + return 1 + fi + + gcc_version=$("${cross_prefix}gcc" -v 2>&1 | tail -1 | awk '{print $3}') + # Run "git-blame" on "OvmfPkg/build.sh" in edk2 for more information on + # the mapping below. + case "$gcc_version" in + ([1-3].*|4.[0-3].*) + printf '%s: unsupported gcc version "%s"\n' \ + "$program_name" "$gcc_version" >&2 + return 1 + ;; + (4.4.*) + printf 'GCC44\n' + ;; + (4.5.*) + printf 'GCC45\n' + ;; + (4.6.*) + printf 'GCC46\n' + ;; + (4.7.*) + printf 'GCC47\n' + ;; + (4.8.*) + printf 'GCC48\n' + ;; + (4.9.*|6.[0-2].*) + printf 'GCC49\n' + ;; + (*) + printf 'GCC5\n' + ;; + esac + ;; + esac +} + + +# Determine the name of the environment variable that exposes the +# cross-compiler prefix to the edk2 "build" utility. Print the result to the +# standard output. +# +# Parameters: +# $1: QEMU system emulation target +qemu_edk2_get_cross_prefix_var() +{ + local emulation_target="$1" + local edk2_toolchain + local edk2_arch + + if ! edk2_toolchain=$(qemu_edk2_get_toolchain "$emulation_target"); then + return 1 + fi + + case "$emulation_target" in + (arm|aarch64) + if ! edk2_arch=$(qemu_edk2_get_arch "$emulation_target"); then + return 1 + fi + printf '%s_%s_PREFIX\n' "$edk2_toolchain" "$edk2_arch" + ;; + (i386|x86_64) + printf '%s_BIN\n' "$edk2_toolchain" + ;; + esac +} + + +# Set and export the environment variable(s) necessary for cross-compilation, +# whenever needed by the edk2 "build" utility. +# +# Parameters: +# $1: QEMU system emulation target +qemu_edk2_set_cross_env() +{ + local emulation_target="$1" + local cross_prefix + local cross_prefix_var + + if ! cross_prefix=$(qemu_edk2_get_cross_prefix "$emulation_target"); then + return 1 + fi + + if [ -z "$cross_prefix" ]; then + # Nothing to do. + return 0 + fi + + if ! cross_prefix_var=$(qemu_edk2_get_cross_prefix_var \ + "$emulation_target"); then + return 1 + fi + + eval "export $cross_prefix_var=\$cross_prefix" +} diff --git a/tests/uefi-test-tools/build.sh b/tests/uefi-test-tools/build.sh index 155cb75c4ddb..e2b52c855c39 100755 --- a/tests/uefi-test-tools/build.sh +++ b/tests/uefi-test-tools/build.sh @@ -38,97 +38,12 @@ if [ $ret -ne 0 ]; then exit $ret fi -# Map the QEMU system emulation target to the following types of architecture -# identifiers: -# - edk2, -# - gcc cross-compilation. -# Cover only those targets that are supported by the UEFI spec and edk2. -case "$emulation_target" in - (arm) - edk2_arch=ARM - gcc_arch=arm - ;; - (aarch64) - edk2_arch=AARCH64 - gcc_arch=aarch64 - ;; - (i386) - edk2_arch=IA32 - gcc_arch=i686 - ;; - (x86_64) - edk2_arch=X64 - gcc_arch=x86_64 - ;; - (*) - printf '%s: unknown/unsupported QEMU system emulation target "%s"\n' \ - "$program_name" "$emulation_target" >&2 - exit 1 - ;; -esac - -# Check if cross-compilation is needed. -host_arch=$(uname -m) -if [ "$gcc_arch" == "$host_arch" ] || - ( [ "$gcc_arch" == i686 ] && [ "$host_arch" == x86_64 ] ); then - cross_prefix= -else - cross_prefix=${gcc_arch}-linux-gnu- -fi - -# Expose cross_prefix (which is possibly empty) to the edk2 tools. While at it, -# determine the suitable edk2 toolchain as well. -# - For ARM and AARCH64, edk2 only offers the GCC5 toolchain tag, which covers -# the gcc-5+ releases. -# - For IA32 and X64, edk2 offers the GCC44 through GCC49 toolchain tags, in -# addition to GCC5. Unfortunately, the mapping between the toolchain tags and -# the actual gcc releases isn't entirely trivial. Run "git-blame" on -# "OvmfPkg/build.sh" in edk2 for more information. -# And, because the above is too simple, we have to assign cross_prefix to an -# edk2 build variable that is specific to both the toolchain tag and the target -# architecture. -case "$edk2_arch" in - (ARM) - edk2_toolchain=GCC5 - export GCC5_ARM_PREFIX=$cross_prefix - ;; - (AARCH64) - edk2_toolchain=GCC5 - export GCC5_AARCH64_PREFIX=$cross_prefix - ;; - (IA32|X64) - gcc_version=$("${cross_prefix}gcc" -v 2>&1 | tail -1 | awk '{print $3}') - case "$gcc_version" in - ([1-3].*|4.[0-3].*) - printf '%s: unsupported gcc version "%s"\n' \ - "$program_name" "$gcc_version" >&2 - exit 1 - ;; - (4.4.*) - edk2_toolchain=GCC44 - ;; - (4.5.*) - edk2_toolchain=GCC45 - ;; - (4.6.*) - edk2_toolchain=GCC46 - ;; - (4.7.*) - edk2_toolchain=GCC47 - ;; - (4.8.*) - edk2_toolchain=GCC48 - ;; - (4.9.*|6.[0-2].*) - edk2_toolchain=GCC49 - ;; - (*) - edk2_toolchain=GCC5 - ;; - esac - eval "export ${edk2_toolchain}_BIN=\$cross_prefix" - ;; -esac +# Fetch some option arguments, and set the cross-compilation environment (if +# any), for the edk2 "build" utility. +source "$edk2_dir/../edk2-funcs.sh" +edk2_arch=$(qemu_edk2_get_arch "$emulation_target") +edk2_toolchain=$(qemu_edk2_get_toolchain "$emulation_target") +qemu_edk2_set_cross_env "$emulation_target" # Build the UEFI binary mkdir -p log From patchwork Sat Mar 9 00:48:18 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Laszlo Ersek X-Patchwork-Id: 1053772 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=redhat.com Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 44GQlJ2ZF5z9s3q for ; Sat, 9 Mar 2019 11:50:36 +1100 (AEDT) Received: from localhost ([127.0.0.1]:52055 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1h2QCA-0001Bm-B7 for incoming@patchwork.ozlabs.org; Fri, 08 Mar 2019 19:50:34 -0500 Received: from eggs.gnu.org ([209.51.188.92]:57881) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1h2QAN-0000PV-MX for qemu-devel@nongnu.org; Fri, 08 Mar 2019 19:48:44 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1h2QAN-0001gI-1g for qemu-devel@nongnu.org; Fri, 08 Mar 2019 19:48:43 -0500 Received: from mx1.redhat.com ([209.132.183.28]:57640) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1h2QAM-0001ds-Qu for qemu-devel@nongnu.org; Fri, 08 Mar 2019 19:48:42 -0500 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 239BE753D1 for ; Sat, 9 Mar 2019 00:48:42 +0000 (UTC) Received: from lacos-laptop-7.usersys.redhat.com (ovpn-125-221.rdu2.redhat.com [10.10.125.221]) by smtp.corp.redhat.com (Postfix) with ESMTP id 567931A914; Sat, 9 Mar 2019 00:48:40 +0000 (UTC) From: Laszlo Ersek To: berrange@redhat.com, imammedo@redhat.com, kraxel@redhat.com, mst@redhat.com, philmd@redhat.com, qemu-devel@nongnu.org Date: Sat, 9 Mar 2019 01:48:18 +0100 Message-Id: <20190309004826.9027-3-lersek@redhat.com> In-Reply-To: <20190309004826.9027-1-lersek@redhat.com> References: <20190309004826.9027-1-lersek@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.39]); Sat, 09 Mar 2019 00:48:42 +0000 (UTC) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PATCH 02/10] roms/edk2-funcs.sh: require gcc-4.8+ for building i386 and x86_64 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" Adapt the qemu_edk2_get_toolchain() function in "roms/edk2-funcs.sh" in advance to edk2 commit 8d7cdfae8cb8 ("OvmfPkg: require GCC48 or later", 2019-01-08), which is part of the "edk2-stable201903" tag. Signed-off-by: Laszlo Ersek Reviewed-by: Philippe Mathieu-Daudé Tested-by: Philippe Mathieu-Daudé --- roms/edk2-funcs.sh | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/roms/edk2-funcs.sh b/roms/edk2-funcs.sh index 908c7665c6ed..22a5dc8f6ab6 100644 --- a/roms/edk2-funcs.sh +++ b/roms/edk2-funcs.sh @@ -149,23 +149,11 @@ qemu_edk2_get_toolchain() # Run "git-blame" on "OvmfPkg/build.sh" in edk2 for more information on # the mapping below. case "$gcc_version" in - ([1-3].*|4.[0-3].*) + ([1-3].*|4.[0-7].*) printf '%s: unsupported gcc version "%s"\n' \ "$program_name" "$gcc_version" >&2 return 1 ;; - (4.4.*) - printf 'GCC44\n' - ;; - (4.5.*) - printf 'GCC45\n' - ;; - (4.6.*) - printf 'GCC46\n' - ;; - (4.7.*) - printf 'GCC47\n' - ;; (4.8.*) printf 'GCC48\n' ;; From patchwork Sat Mar 9 00:48:19 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Laszlo Ersek X-Patchwork-Id: 1053771 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=redhat.com Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 44GQkP6ffSz9s3q for ; Sat, 9 Mar 2019 11:49:49 +1100 (AEDT) Received: from localhost ([127.0.0.1]:52053 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1h2QBP-0000VT-Ov for incoming@patchwork.ozlabs.org; Fri, 08 Mar 2019 19:49:47 -0500 Received: from eggs.gnu.org ([209.51.188.92]:57916) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1h2QAQ-0000RH-5D for qemu-devel@nongnu.org; Fri, 08 Mar 2019 19:48:47 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1h2QAP-0001jZ-B0 for qemu-devel@nongnu.org; Fri, 08 Mar 2019 19:48:46 -0500 Received: from mx1.redhat.com ([209.132.183.28]:58248) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1h2QAP-0001iA-2F for qemu-devel@nongnu.org; Fri, 08 Mar 2019 19:48:45 -0500 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 5D36A307D8E2 for ; Sat, 9 Mar 2019 00:48:44 +0000 (UTC) Received: from lacos-laptop-7.usersys.redhat.com (ovpn-125-221.rdu2.redhat.com [10.10.125.221]) by smtp.corp.redhat.com (Postfix) with ESMTP id 7B37A166AE; Sat, 9 Mar 2019 00:48:42 +0000 (UTC) From: Laszlo Ersek To: berrange@redhat.com, imammedo@redhat.com, kraxel@redhat.com, mst@redhat.com, philmd@redhat.com, qemu-devel@nongnu.org Date: Sat, 9 Mar 2019 01:48:19 +0100 Message-Id: <20190309004826.9027-4-lersek@redhat.com> In-Reply-To: <20190309004826.9027-1-lersek@redhat.com> References: <20190309004826.9027-1-lersek@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.48]); Sat, 09 Mar 2019 00:48:44 +0000 (UTC) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PATCH 03/10] tests/uefi-test-tools/build.sh: work around TianoCore#1607 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" The edk2-stabe201903 release introduced Python3 support to edk2's BaseTools; however the Python3 enablement breaks in a corner case (which is nevertheless supported by the edk2 community), namely the in-module parallelization that we utilize. This is tracked under . For now, work around the issue (in advance) by forcing Python2. (The workaround is a no-op before we move to edk2-stabe201903 in the roms/edk2 submodule.) Signed-off-by: Laszlo Ersek Reviewed-by: Philippe Mathieu-Daudé Tested-by: Philippe Mathieu-Daudé --- tests/uefi-test-tools/build.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tests/uefi-test-tools/build.sh b/tests/uefi-test-tools/build.sh index e2b52c855c39..8aa7935c43bb 100755 --- a/tests/uefi-test-tools/build.sh +++ b/tests/uefi-test-tools/build.sh @@ -29,6 +29,9 @@ export PACKAGES_PATH=$(realpath -- "$edk2_dir") export WORKSPACE=$PWD mkdir -p Conf +# Work around . +export PYTHON_COMMAND=python2 + # Source "edksetup.sh" carefully. set +e +u +C source "$PACKAGES_PATH/edksetup.sh" From patchwork Sat Mar 9 00:48:20 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Laszlo Ersek X-Patchwork-Id: 1053775 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=redhat.com Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 44GQpZ2WCFz9s4Y for ; Sat, 9 Mar 2019 11:53:26 +1100 (AEDT) Received: from localhost ([127.0.0.1]:52110 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1h2QEu-0003eT-4n for incoming@patchwork.ozlabs.org; Fri, 08 Mar 2019 19:53:24 -0500 Received: from eggs.gnu.org ([209.51.188.92]:57954) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1h2QAW-0000WN-BN for qemu-devel@nongnu.org; Fri, 08 Mar 2019 19:48:56 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1h2QAS-0001nS-8z for qemu-devel@nongnu.org; Fri, 08 Mar 2019 19:48:52 -0500 Received: from mx1.redhat.com ([209.132.183.28]:38762) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1h2QAR-0001mX-Rd for qemu-devel@nongnu.org; Fri, 08 Mar 2019 19:48:48 -0500 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 25E82368FF for ; Sat, 9 Mar 2019 00:48:47 +0000 (UTC) Received: from lacos-laptop-7.usersys.redhat.com (ovpn-125-221.rdu2.redhat.com [10.10.125.221]) by smtp.corp.redhat.com (Postfix) with ESMTP id D1FCB17F8D; Sat, 9 Mar 2019 00:48:44 +0000 (UTC) From: Laszlo Ersek To: berrange@redhat.com, imammedo@redhat.com, kraxel@redhat.com, mst@redhat.com, philmd@redhat.com, qemu-devel@nongnu.org Date: Sat, 9 Mar 2019 01:48:20 +0100 Message-Id: <20190309004826.9027-5-lersek@redhat.com> In-Reply-To: <20190309004826.9027-1-lersek@redhat.com> References: <20190309004826.9027-1-lersek@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.30]); Sat, 09 Mar 2019 00:48:47 +0000 (UTC) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PATCH 04/10] roms/edk2: advance to tag edk2-stable201903 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" Update the roms/edk2 submodule hash from edk2-stable201811 to edk2-stable201903. The release notes are available at . $ git shortlog edk2-stable201811..edk2-stable201903 Achin Gupta (9): ArmPkg: Add PCDs needed for MM communication driver. ArmPkg/Drivers: Add EFI_MM_COMMUNICATION_PROTOCOL DXE driver. ArmPkg/Include: Add MM interface SVC return codes. ArmPkg/ArmMmuLib: Add MMU Library suitable for use in S-EL0. StandaloneMmPkg: Add missing dependency on PL011UartClockLib StandaloneMmPkg: Enforce alignment check for AArch64 StandaloneMmPkg: Zero data structure explicitly StandaloneMmPkg: Replace dependency on ArmMmuLib StandaloneMmPkg: Update dependency on PeCoffExtraActionLib Albecki, Mateusz (1): MdeModulePkg/SdMmcPciHcDxe Fix eMMC HS400 switch sequence Alex James (2): StdLib/sys/termios: Define cc_t as unsigned StdLib/Environs: Avoid infinite recursion in _Exit Antoine Coeur (5): ArmVirtPkg: Fix various typos CryptoPkg: Fix various typos CorebootPayloadPkg: Fix various typos CorebootModulePkg: Fix various typos BaseTools: Various typo Ard Biesheuvel (116): MdePkg/BaseIoLibIntrinsicArmVirt ARM: avoid double word loads and stores ArmPkg/ArmGicDxe ARM: fix encoding for GICv3 interrupt acknowledge ArmPlatformPkg: clear frame pointer in startup code ArmVirtPkg/PrePi: clear frame pointer in startup code ArmPkg/ArmSmcPsciResetSystemLib: add missing call to ExitBootServices() ArmPkg: remove now unused BsdLib.h ArmPlatformPkg/NorFlashDxe: prepare for devicepath format change ArmPlatformPkg/NorFlashDxe: use one GUID plus index to identify flash banks ArmVirtPkg/FdtClientDxe: take DT node 'status' properties into account ArmVirtPkg/NorFlashQemuLib: discover NOR flash banks dynamically ArmPlatformPkg/NorFlashPlatformLib: remove unused Guid member from struct ArmPkg/ArmPkg.dsc: move ArmMmuStandaloneMmLib.inf to AARCH64 section EmbeddedPkg/TemplateSec: remove unused module EmbeddedPkg/PrePiHobLib: drop CreateHobList() from library ArmVirtPkg/FdtPciHostBridgeLib: map ECAM and I/O spaces in GCD memory map ArmVirtPkg/QemuVirtMemInfoLib: remove 1:1 mapping of top of PA range MdePkg/ProcessorBind.h AARCH64: limit MAX_ADDRESS to 48 bits ArmPkg/ArmLib: add support for reading the max physical address space size ArmVirtPkg/XenVirtMemInfoLib: refactor reading of the PA space size ArmPkg/ArmMmuLib: take the CPU supported maximum PA space into account ArmPkg/CpuPei: base GCD memory space size on CPU's PA range ArmPlatformPkg/PrePi: base GCD memory space size on CPU's PA range ArmVirtPkg/PrePi: base GCD memory space size on CPU's PA range BeagleBoardPkg/PrePi: base GCD memory space size on CPU's PA range ArmPlatformPkg/PlatformPei: drop unused PCD references EmbeddedPkg/PrePiLib: drop unused PCD reference ArmVirtPkg: drop PcdPrePiCpuMemorySize assignments from all platforms EmbeddedPkg/EmbeddedPkg.dec: drop PcdPrePiCpuMemorySize declarations ArmPkg/ArmMmuLib ARM: handle unmapped section in GetMemoryRegion() ArmPkg/ArmMmuLib ARM: handle unmapped sections when updating permissions ArmVirtPkg/NorFlashQemuLib: disregard our primary FV ArmVirtPkg/QemuVirtMemInfoLib: trim the MMIO region mapping BaseTools/CommonLib: avoid using 'native' word size in IP address handling BaseTools/CommonLib: use explicit 64-bit type in Strtoi() BaseTools/DevicePath: use explicit 64-bit number parsing routines BaseTools/CommonLib: add definition of MAX_UINT32 BaseTools/DevicePath: use MAX_UINT32 as default device path max size BaseTools/CommonLib: get rid of 'native' type string parsing routines BaseTools/CommonLib: drop definition of MAX_UINTN BaseTools/CommonLib: drop the use of MAX_ADDRESS Revert "MdePkg/ProcessorBind.h AARCH64: limit MAX_ADDRESS to 48 bits" MdeModulePkg/FileExplorerLib: avoid packed struct for program data BaseTools/tools_def AARCH64 RELEASE: move GCC49/GGC5 to 4 KB alignment ArmVirtPkg/ArmVirtQemuKernel ARM: make some PCD settings apply to ARM ArmVirtPkg/PrePiUniCoreRelocatable CLANG38: work around build issues BaseTools/GenFw ARM: don't permit R_ARM_GOT_PREL relocations MdePkg/BaseMemoryLibOptDxe ARM: add missing function annotations BaseTools/tools_def ARM CLANG35: work around -mno-movt option name change ArmVirtPkg/PrePi ARM CLANG35: drop incompatible command line option ArmVirtPkg/ArmVirt.dsc.inc: define TcpIoLib resolution unconditionally ArmPkg: remove redundant _ARM_PLATFORM_FLAGS overrides EmbeddedPkg: remove GdbDebugAgent library BaseTools/tools_def ARM: emit PIC veneers ArmPkg/DefaultExceptionHandlerLib ARM: avoid endless loop in RELEASE builds MdePkg/Base: introduce MAX_ALLOC_ADDRESS MdeModulePkg/Dxe/Gcd: disregard memory above MAX_ALLOC_ADDRESS MdeModulePkg/Dxe/Page: take MAX_ALLOC_ADDRESS into account ArmPkg/ArmMmuLib: take MAX_ALLOC_ADDRESS into account ArmPlatformPkg/MemoryInitPeim: take MAX_ALLOC_ADDRESS into account ArmVirtPkg/MemoryInitPeiLib: split memory HOB based on MAX_ALLOC_ADDRESS MdePkg/Arm/ProcessorBind.h: fix copy/paste error ArmPlatformPkg/SP805WatchdogDxe: cosmetic cleanup ArmPlatformPkg/SP805WatchdogDxe: switch to interrupt mode ArmPkg/GenericWatchdogDxe: clean up the code ArmPkg/GenericWatchdogDxe: implement RegisterHandler() method ArmPlatformPkg/PL011SerialPortLib: use untyped PCD for register base BaseTools/tools_def ARM: use softfloat target for CLANG3x BaseTools/GenFds: permit stripped MM_CORE_STANDALONE binaries BaseTools/Conf/tools_def.template: drop ARM/AARCH support from GCC46/GCC47 ArmPkg/ArmMmuLib ARM: add missing support for non-shareable cached mappings ArmPkg/ArmMmuLib ARM: fix thinko in second level page table handling MdePkg: implement MmServicesTableLib based on traditional SMM BaseTools/tools_def GCC5: disable LTO for ASLC invocations ArmPkg/ArmMmuLib ARM: disregard high memory when setting permissions ArmPkg/ArmMmuLib AARCH64: fix out of bounds access MdeModulePkg/MdeModulePkg.dsc: add MmServicesTableLib resolution OvmfPkg: add MmServicesTableLib resolution QuarkPlatformPkg: add MmServicesTableLib resolution Vlv2TbltDevicePkg: add MmServicesTableLib resolution MdeModulePkg/FaultTolerantWriteDxe: factor out boot service accesses MdeModulePkg/FaultTolerantWriteDxe: implement standalone MM version MdeModulePkg/VariableRuntimeDxe: factor out boot service accesses MdeModulePkg/VariableRuntimeDxe: implement standalone MM version MdePkg: introduce standalone MM entry point library class MdePkg: introduce standalone MM entry point library implementation MdePkg: add MM_STANDALONE implementation of MmServicesTableLib MdeModulePkg: implement NULL instance of HobLib library class MdeModulePkg: implement NULL instance of MemoryAllocationLib library class MdeModulePkg/MdeModulePkg/dsc: move DxeDebugSupportDxe to x86 only section MdeModulePkg/AuthVariableLibNull: add MM_STANDALONE support MdeModulePkg/VarCheckLib: add MM_STANDALONE support MdeModulePkg/MdeModulePkg.dsc: add MM_STANDALONE FTW and variable modules ArmPkg/DebugAgentSymbolsBaseLib: remove exception handling ArmPkg/DefaultExceptionHandlerLib: declare the permitted usage context ArmVirtPkg: drop reference to ArmPkg/DefaultExceptionHandlerLibBase ArmPkg/DefaultExceptionHandlerLib: drop BASE variant ArmPkg/DefaultExceptionHandlerLib: use console if available EmbeddedPkg/NorFlashInfoLib: convert to BASE library ArmPkg/DefaultExceptionHandlerLib: add missing UefiLib include CryptoPkg/SmmCryptLib: permit use by MM_STANDALONE modules SecurityPkg/PlatformSecureLibNull: permit use by MM_STANDALONE modules MdeModulePkg/VarCheckUefiLib: permit use by MM_STANDALONE modules MdePkg/UefiDevicePathLib: permit use by MM_STANDALONE modules StandaloneMmPkg: add HobLib implementation for MM_STANDALONE modules StandaloneMmPkg: add MM_STANDALONE MemoryAllocationLib implementation StandaloneMmPkg/StandaloneMmCoreHobLib: restrict to MM_CORE_STANDALONE StandaloneMmPkg/StandaloneMmCpu: fix typo Standlone -> Standalone StandaloneMmPkg/StandaloneMmCoreEntryPoint: use %a modifier for ASCII strings StandaloneMmPkg/StandaloneMmCoreEntryPoint: remove bogus ASSERT_EFI_ERROR()s StandaloneMmPkg/StandaloneMmPeCoffExtraActionLib: ignore runtime attribute StandaloneMmPkg/Core/Dispatcher: don't copy dispatched image twice StandaloneMmPkg/StandaloneMmCoreEntryPoint: permit the use of TE images MdeModulePkg/MdeModulePkg.dsc: ignore standalone MM modules for EBC or XCODE5 ArmPkg/ArmMmuLib ARM: trim high memory regions instead of rejecting them ArmPkg/ArmMmuLib AARCH64: get rid of needless TLB invalidation MdePkg/BaseLib: implement SpeculationBarrier() for ARM and AArch64 Ashish Singhal (6): MdeModulePkg/SdMmcPciHcDxe: Add SDMMC HC v4 and above Support. MdePkg/UefiLib: Abstract driver model protocol uninstallation NetworkPkg/IScsiDxe: Use UEFILib APIs to uninstall protocols. NetworkPkg: Protocol Uninstallation Cleanup DynamicTablesPkg/DynamicTableManagerDxe: Update DEPEX DynamicTablesPkg/AcpiSpcrLibArm: Support 16550 UART. Bret Barkelew (4): MdePkg/IndustryStandard: Introduce a correctly spelled macro SecurityPkg/Tcg: Fix typos in TcgDxe.c and Tcg2Dxe.c MdePkg/IndustryStandard: Remove an incorrectly spelled macro MdePkg/UefiLib: Add a new API GetVariable3 Chasel, Chiu (16): IntelFsp2WrapperPkg: Support FSP Dispatch mode IntelFsp2WrapperPkg: Revert 90c5bc08 IntelFsp2WrapperPkg: Support FSP Dispatch mode IntelFsp2WrapperPkg: Fix line ending format issue IntelFsp2WrapperPkg: Fix constant if statements issue Maintainers.txt: Change package maintainer of IntelFsp*Pkg BaseTools/GenFv: Support SecCore and PeiCore in different FV IntelFsp2Pkg: Add FspmArchConfigPpi to support Dispatch mode IntelFsp2Pkg: Remove unused keyword in new PPI header IntelFsp2Pkg: Add function to get bootloader stack pointer IntelFsp2Pkg: FSP can utilize bootloader stack MdePkg: Support EFI_PEI_CORE_FV_LOCATION_PPI MdeModulePkg/PeiMain: Support EFI_PEI_CORE_FV_LOCATION_PPI UefiCpuPkg/SecCore: Support EFI_PEI_CORE_FV_LOCATION_PPI UefiCpuPkg/SecCore: Support EFI_PEI_CORE_FV_LOCATION_PPI UefiCpuPkg/SecCore: Wrong Debug Information for SecCore Chen A Chen (18): SecurityPkg: Remove dead code and inf redundant definitions. SecurityPkg: Remove code under UserIdentification folder. FatPkg: Break down Part.c file. MdePkg/UefiGpt.h: Add new definition for enable GPT support FatPkg: Add GPT check in FatPei to support Capsule-on-Disk feature. MdePkg/UefiSpec.h: Add definition to support Capsule-on-Disk feature MdeModulePkg/CapsuleApp: Add a function used to get next DevicePath MdeModulePkg/CapsuleApp: Add functions to support Capsule-on-Disk MdeModulePkg/CapsuleApp: Enhance CapsuleApp to support Capsule-on-Disk FatPkg/FatPei/Gpt.c: Fix uninitialized variable issue MdeModulePkg/CapsuleApp: Fix potential NULL pointer dereference issue MdeModulePkg/CapsuleApp: Fix potential NULL pointer dereference issue MdeModulePkg/CapsuleApp: Fix memory leak issue. UefiCpuPkg/Microcode: Fix incorrect checksum issue for extended table IntelSiliconPkg/MicrocodeUpdate: Fix incorrect checksum issue MdeModulePkg: Rename confusion function name UefiCpuPkg/Microcode: Fix InComplete CheckSum32 issue UefiCpuPkg/Microcode.c: Add verification before calculate CheckSum32 Chu, Maggie (2): SecurityPkg: Incorrect warning message for Opal admin revert action SecurityPkg: Add a PCD to skip Opal password prompt Dandan Bi (12): MdeModulePkg/DisplayEngine: Remove useless NULL ptr check for NewPos MdePkg: check Length para before use in DevPathToTextUsbWWID MdePkg: Check input Ptrs in GetSectionFromAnyFvByFileType BaseTools/VfrCompile: report error for Integer overflow MdeModulePkg/NonDiscoverablePciDevice: Remove the redundant check MdePkg/BasePeCoffLib: Add more check for relocation data MdePkg/BasePeCoffLib: Correct the address of RelocBaseEnd ShellPkg/UefiShellAcpiViewCommandLib: Fix VS tool chain build failure MdeModulePkg: Fix coding style issues MdePkg: Fix coding style issues MdePkg/StatusCodeDataTypeId.h: Add new definition per PI1.7 Spec MdeModulePkg/BmBoot: Report status when fail to load/start boot option Derek Lin (1): BaseTools: Fix GenFds error doesn't break build. Edgar Handal (1): MdeModulePkg/SdMmcPciHcDxe: Use 16/32-bit IO widths Eric Dong (9): UefiCpuPkg/Cpuid.h: Sync CPUID definition to latest SDM. UefiCpuPkg/Cpuid: Add code to support new definition. UefiCpuPkg/RegisterCpuFeaturesLib: Enhance debug message. UefiCpuPkg/RegisterCpuFeaturesLib: Avoid AP calls PeiService. UefiCpuPkg/S3Resume2Pei: check 64BIT_WAKE_F in FACS.OSPMFlags. MdeModulePkg/BootScriptExecuteorDxe: check 64BIT_WAKE_F in FACS.OSPMFlags UefiCpuPkg/RegisterCpuFeaturesLib: Replace AcquireSpinLock. SecurityPkg/OpalPassword: Update strings on Opal Setup page SecurityPkg/OpalPassword: Add NULL pointer check before using it Felix Polyudov (1): BaseTools: Fix incorrect formatting of GenFds command dictionary Feng, Bob C (52): BaseTools: Fix the problem using FILE_GUID override in .dsc BaseTools: Enable Pcd Array support. BaseTool: Filter out unused structure pcds BaseTools: Replace the sqlite database with list BaseTools: Optimize string concatenation BaseTools: Customize deepcopy function. BaseTools: Correct CCFLAG for PcdValueInit BaseTools: Fix PcdNvStoreDefaultValueBuffer Value. BaseTools: Fixed bugs in CopyDict function BaseTools: Fixed the build fail issue for cases BaseTools: Fix PcdArray issue BaseTools: Fixed metafile parser issues BaseTools: Reset FdsGlobalVariable BaseTools: Fixed build report issue. BaseTools: Correct PcdArray value assigment statement BaseTools: Report Error if use SET in Dsc BaseTools: Remove unused logic for EDKI BaseTools: Remove unused logic for IPF BaseTools: Remove unused logic from C tools BaseTools: Enable component override functionality BaseTools: Remove unused logic for EDKI BaseTools: Remove EDK_SOURCE keyword from ECC Tool BaseTools: Remove EDK_SOURCE keyword from GenFds tool. BaseTools: Remove EDK_SOURCE keyword from Inf Parser. BaseTools: Allow empty value for HiiPcd in Dsc BaseTools: Fix build report issue. BaseTools: use OrderedDict instead of sdict BaseTools: Make sure AllPcdList valid. BaseTools:File open failed for VPD MapFile BaseTools:Fixed Rsa issue and a set define issue. BaseTools:ord() don't match in py2 and py3 BaseTools: the list and iterator translation BaseTools: Handle the bytes and str difference BaseTools: ECC tool Python3 adaption BaseTools: Eot tool Python3 adaption BaseTools: Enable CODE format in DEC file BaseTools: Fixed incorrect line number in PcdValueInit.c BaseTools: Correct the error message for UPT BaseTools: Fixed a build report issue. BaseTools: Fix the build report issue about Structure PCD BaseTools: Fixed an issue about StructurePcd BaseTools: Add MaxSizeUserSet to Pcd deepcopy function BaseTools: Fix a ParseDevPathValue function issue. BaseTools: Fixed a bug in Vpd handling BaseTools: Fixed a code bug for Pcd Array. BaseTools: replace Sdict with OrderedDict in UPT BaseTool: Fixed incremental rebuild issue. BaseTools: Fix a bug about Structure PCD BaseTools: Add parameter check for the AsciiStringToUint64 BaseTools: Eot failed when enable python3 BaseTools: Fix a Eot issue. BaseTools: Add python3-distutils Ubuntu package checking Gary Lin (2): MdePkg ACPI: fix the typos in Acpi61.h and Acpi62.h MdeModulePkg/UefiBootManagerLib: Match the nested partitions Gonzalez Del Cueto, Rodrigo (1): SecurityPkg/TcgConfigDxe: Allow enabling TPM 1.2 device from disabled state. Hao Wu (25): MdePkg/BaseLib: Introduce new SpeculationBarrier API MdeModulePkg/FaultTolerantWrite: Update to consume SpeculationBarrier MdeModulePkg/SmmLockBox: Update to consume SpeculationBarrier MdeModulePkg/Variable: Update to consume SpeculationBarrier UefiCpuPkg/PiSmmCpuDxeSmm: Update to consume SpeculationBarrier UefiCpuPkg: Merge StuffRsb.inc files into one in UefiCpuPkg/Include MdeModulePkg/SdMmcPciHcDxe: Fix VS2015 IA32 NOOPT build failure MdeModulePkg/SdMmcPciHcDxe: Update comment for spec compliance status MdeModulePkg: Add definitions for ATA AHCI host controller PPI MdeModulePkg: Add definitions for EDKII PEI ATA PassThru PPI MdeModulePkg: Add definitions for Storage Security Command PPI MdeModulePkg: Add GUID for LockBox to save storage dev to init in S3 MdeModulePkg/NvmExpressPei: Avoid updating the module-level variable MdeModulePkg/NvmExpressPei: Add logic to produce SSC PPI MdeModulePkg/NvmExpressPei: Consume S3StorageDeviceInitList LockBox MdeModulePkg/AhciPei: Add AHCI mode ATA device support in PEI MdeModulePkg/SmmLockBoxLib: Use 'DEBUG_' prefix instead of 'EFI_D_' MdeModulePkg/SmmLockBox(PEI): Remove an ASSERT in RestoreLockBox() MdeModulePkg/SmmLockBoxLib: Support LockBox enlarge in UpdateLockBox() OvmfPkg/LockBoxLib: Update the comments for API UpdateLockBox() SecurityPkg/OpalPassword: Remove HW init codes and consume SSC PPI SecurityPkg/HddPassword: Add Security feature set support for ATA dev MdeModulePkg/UfsBlockIoPei: Correct use of 'DeviceIndex' in BlkIO PPI MdeModulePkg/PartitionDxe: Ensure blocksize holds MBR (CVE-2018-12180) MdeModulePkg/RamDiskDxe: Restrict on RAM disk size (CVE-2018-12180) Hess Chen (1): BaseTools/ECC: Add a new type of exception Hsueh, Hong-chihX (1): MdePkg/BasePeCoffLib: skip runtime relocation if reloc info is invalid Jaben Carsey (14): BaseTools: Move Identification file to Eot BaseTools: cleanup LongFilePathSupport usage BaseTools: create and use a standard shared variable for '*' BaseTools: fix imports MdeModulePkg: fix comments in BaseSortLib BaseTools/build/build: refactor and move functions BaseTools/Workspace/InfBuildData: move functions BaseTools/DscBuildData: move function BaseTools/AutoGen: move functions BaseTools/GenFds/Capsule: move function logic BaseTools/Common/Misc: move private functions BaseTools/Common/Misc: remove uncalled code BaseTools/Common/Misc: Cleanup the imports BaseTools/build/build: delete variable Jagadeesh Ujja (2): SecurityPkg/AuthVariableLib: allow MM_STANDALONE drivers to use this library MdePkg/Include: add MmServicesTableLib header file Jeff Brasen (5): MdeModulePkg/SdDxe: Fix potential NULL pointer access EmbeddedPkg/PrePiMemoryAllocationLib: Added AllocateZeroPool() MdeModulePkg/BaseSortLib: Enable for all module types ArmPkg/ArmScmiDxe: Add clock enable function EmbeddedPkg/PrePiLib: Correct function name Jian J Wang (7): CryptoPkg/IntrinsicLib: add missing BaseLib declaration Upgrade OpenSSL to 1.1.0j CryptoPkg/BaseCryptLib: split CryptPkcs7Verify.c on behalf of runtime MdePkg/UefiDevicePathLib: Add sanity check for FilePath device path MdePkg/UefiDevicePathLibDevicePathProtocol: Add sanity check for FilePath device path UefiCpuPkg: restore strict page attributes via #DB in nonstop mode only Maintainers.txt: remove unexpected unicode BOM Jiaxin Wu (7): MdeModulePkg/Dhcp4Dxe: Remove unnecessary NULL pointer check. NetworkPkg/IScsiDxe: Remove unnecessary NULL pointer check. NetworkPkg/DnsDxe: Remove unnecessary NULL pointer check. MdeModulePkg/Ip4Dxe: Uninstall protocols when error happen in Driver Binding Start. NetworkPkg/Ip6Dxe: Uninstall protocols when error happen in Driver Binding Start. NetworkPkg/Ip6Dxe: Clean the invalid IPv6 configuration during driver start. NetworkPkg/DnsDxe: [CVE-2018-12178] Check the received packet size before parsing the message. Jiewen Yao (6): MdeModulePkg/LockboxNullLib: clean up INF file. BaseTool/GenC: Fix build error when type is BASE or USER_DEFINED. MdePkg/Include: Add Nasm.inc MdePkg/BaseLib: Add Shadow Stack Support for X86. UefiCpuPkg/ExceptionLib: Add CET support. UefiCpuPkg/PiSmmCpu: Add Shadow Stack Support for X86 SMM. Jordan Justen (1): OvmfPkg/build.sh: Enable flash for qemu 3 or later Julien Grall (1): Maintainers.txt: Update e-mail address for Julien Grall Krzysztof Koch (1): ShellPkg/UefiShellAcpiViewCommandLib: Add support for PPTT Laszlo Ersek (47): EmulatorPkg: require GCC48 or later OvmfPkg: require GCC48 or later Vlv2TbltDevicePkg: assume GCC48 or later BaseTools/tools_def.template: fix up LF-only line terminator BaseTools/tools_def.template: strip trailing whitespace BaseTools/tools_def.template: remove GCC48_IA32_X64_DLINK_COMMON dead-end BaseTools/tools_def.template: remove GCC47 leaf definitions BaseTools/tools_def.template: propagate loss of GCC47 references BaseTools/tools_def.template: remove GCC47 documentation BaseTools/tools_def.template: remove GCC46 leaf definitions BaseTools/tools_def.template: propagate loss of GCC46 references BaseTools/tools_def.template: remove GCC46 documentation BaseTools/tools_def.template: remove GCC45 leaf definitions BaseTools/tools_def.template: propagate loss of GCC45 references BaseTools/tools_def.template: remove GCC45 documentation BaseTools/tools_def.template: remove GCC44 leaf definitions BaseTools/tools_def.template: propagate loss of GCC44 references BaseTools/tools_def.template: rename GCC44_ALL_CC_FLAGS to GCC48_ALL_CC_FLAGS BaseTools/tools_def.template: eliminate GCC44_IA32_X64_DLINK_FLAGS BaseTools/tools_def.template: rename GCC44_IA32_X64_DLINK_COMMON to GCC48_IA32_X64_DLINK_COMMON BaseTools/tools_def.template: remove comment about GCC44 + LzmaF86Compress BaseTools/tools_def.template: remove GCC44 documentation ArmPkg/ArmSoftFloatLib: drop build flags specific to GCC46/GCC47 CryptoPkg/BaseCryptLib: drop build flags specific to GCC44 Revert "MdePkg: avoid __builtin_unreachable() on GCC v4.4" BaseTools/BuildReport: fix report for platforms/arches without struct PCDs ArmVirtPkg/ArmVirtQemuKernel: don't set PcdCPUCoresStackBase ArmVirtPkg: don't set PcdRelocateVectorTable ArmVirtPkg/{ArmVirtQemu,ArmVirtQemuKernel}: don't set PcdTrustzoneSupport ArmVirtPkg: don't set PcdPostCodePropertyMask ArmVirtPkg: clean up PcdSetNxForStack setting (applies to ArmVirtQemu only) ArmVirtPkg/PrePi: drop wrong PcdCoreCount dependency ArmVirtPkg: don't set PcdCoreCount ArmVirtPkg: don't set PcdDebugClearMemoryValue ArmVirtPkg: don't set PcdDebugPrintErrorLevel in RELEASE builds ArmVirtPkg/ArmVirtXen: don't set PcdPL031RtcBase ArmVirtPkg/ArmVirtXen: don't set PcdTerminalTypeGuidBuffer ArmVirtPkg/ArmVirtXen: don't set PcdShellFile ArmVirtPkg/ArmVirtXen: don't set PcdTurnOffUsbLegacySupport ArmVirtPkg/ArmVirtXen: don't set Pcd*ImageVerificationPolicy Maintainers: add TPM2 reviewers for OvmfPkg Maintainers: specify the scope for OvmfPkg/ArmVirtPkg Xen module reviewers MdeModulePkg/UefiBootManagerLib: fix LoadImage/StartImage status code rep. OvmfPkg: add library to track boot option loading/starting on the console OvmfPkg/PlatformBootManagerLib: display boot option loading/starting ArmVirtPkg/ArmVirtQemu*: enable minimal Status Code Routing in DXE ArmVirtPkg/PlatformBootManagerLib: display boot option loading/starting Leif Lindholm (8): ArmPkg: fix StandaloneMmMmuLib subdirectory case ArmPkg: drop ArmBds remnant Pcds from .dec ArmPkg: delete unused ArmTrustZoneSmc.h AppPkg: fix webserver build for !Ia32/X64 IntelFrameworkModulePkg: fix build for AARCH64/ARM IntelFrameworkPkg: fix build for AARCH64/ARM SecurityPkg: fix package build on ARM SignedCapsulePkg: enable package build for AARCH64/ARM Liming Gao (12): OvmfPkg: Don't include TftpDynamicCommand in XCODE5 tool chain MdeModulePkg PCD: Add DynamicEx PcdVpdBaseAddress64 for non SPI platform Maintainers.txt: Add the rule to hand over the package maintain role BaseTools Script: Update ConvertFceToStructurePcd to report warning messages MdeModulePkg: Correct PCD name in MdeModulePkg.uni Readme.md: Add edk2 release tag and edk2 release plan BaseTools GenFw: Fix XCODE5 build issue BaseTools VolInfo: Fix XCODE5 build issue BaseTools: Update PYTHON env to PYTHON_COMMAND MdeModulePkg DxeCapsuleLibFmp: Update SupportCapsuleImage() for Fake Capsule BaseTools: Remove unused txt files Revert "BaseTools:BaseTools supports to the driver combination." Liu Yu (1): EmulatorPkg/build.sh: Fix 'run' path to simulator host executable Marcin Wojtas (2): MdeModulePkg/SdMmcPciHcDxe: Add an optional parameter in NotifyPhase MdeModulePkg/SdMmcPciHcDxe: Allow overriding base clock frequency Max Knutsen (1): MdeModulePkg/ReportStatusCodeLib: Avoid using AllocatePool if possible Meenakshi Aggarwal (1): EmbeddedPkg: Fix Command Argument for SD/eMMC R/W operation. Mike Maslenkin (1): UefiCpuPkg/CpuExceptionHandlerLib: Fix spelling issue Mike Turner (4): MdePkg/BaseLib: Introduce CharToUpper and AsciiCharToUpper publicly MdePkg/UefiDevicePathLib: Add a checking step BaseTools/DevicePath: Add a checking step MdePkg/BaseLib: Add Base64Encode() and Base64Decode() Pete Batard (2): EmbeddedPkg/Library: Add VirtualRealTimeClockLib EmbeddedPkg/VirtualRealTimeClockLib: Fix correctness issues Philippe Mathieu-Daude (1): BaseTools: Fix build failure when specifying multiple BUILDTARGET Ray Ni (10): MdeModulePkg/PciBus: Shadow option ROM after BARs are programmed MdeModulePkg/PciBus: Fix system hang when no PCI Option ROM exists Maintainers.txt: Update mail address MdeModulePkg/PciBus: Change PCI_IO_DEVICE.RomSize to UINT32 type MdeModulePkg/PciBus: Correct typos MdeModulePkg/PciBus: Fix a bug PPB MEM32 BAR isn't restored sometimes UefiCpuPkg/MtrrLib: Fix a bug that may wrongly set memory <1MB to UC ShellBinPkg: Ia32/X64 Shell binary update. MdeModulePkg/HiiDatabase: Fix potential integer overflow (CVE-2018-12181) MdeModulePkg/HiiImage: Fix stack overflow when corrupted BMP is parsed (CVE-2018-12181) Sami Mujawar (36): Maintainers.txt: Change DynamicTablesPkg maintainer DynamicTablesPkg: Dynamic Tables Framework DynamicTablesPkg: Table Generator definition DynamicTablesPkg: Acpi Table Generator DynamicTablesPkg: SMBIOS Table Generator DynamicTablesPkg: DT Table Generator DynamicTablesPkg: Standard NameSpace Objects DynamicTablesPkg: Arm NameSpace Objects DynamicTablesPkg: Configuration Manager Objects DynamicTablesPkg: Configuration Manager Protocol DynamicTablesPkg: Configuration Manager Helper DynamicTablesPkg: Table Helper Library DynamicTablesPkg: Dynamic Table Factory Protocol DynamicTablesPkg: Dynamic Table Factory Dxe DynamicTablesPkg: Dynamic Table Manager Dxe DynamicTablesPkg: Arm Raw/DSDT/SSDT Generator DynamicTablesPkg: Arm ACPI FADT Generator DynamicTablesPkg: Arm ACPI MADT Generator DynamicTablesPkg: Arm ACPI GTDT Generator DynamicTablesPkg: Arm SPCR Table Generator DynamicTablesPkg: Arm DBG2 Table Generator DynamicTablesPkg: Arm PCI MCFG Table Generator DynamicTablesPkg: Arm IORT Table Generator DynamicTablesPkg: Fix protocol section DynamicTablesPkg: Rename enum used for ID Mapping DynamicTablesPkg: Add OEM Info DynamicTablesPkg: DGB2: Update DBG2_DEBUG_PORT_DDI DynamicTablesPkg: Remove GIC Distributor Id field DynamicTablesPkg: Minor updates and fix typos ArmPkg: Fix writes to GICv3 GICD_IROUTER reg Revert "DynamicTablesPkg: Minor updates and fix typos" Revert "DynamicTablesPkg: Remove GIC Distributor Id field" Revert "DynamicTablesPkg: DGB2: Update DBG2_DEBUG_PORT_DDI" Revert "DynamicTablesPkg: Add OEM Info" Revert "DynamicTablesPkg: Rename enum used for ID Mapping" Revert "DynamicTablesPkg: Fix protocol section" Sean Brogan (1): MdeModulePkg/NvmExpressDxe: Report StatusCode for device init failure Shenglei Zhang (37): EmulatorPkg: Remove EdkShellBinPkg in FDF and DEC Nt32Pkg: Remove EdkShellBinPkg in FDF and DEC OvmfPkg: Remove EdkShellBinPkg in FDF Vlv2TbltDevicePkg: Remove EdkShellBinPkg with ShellPkg EdkShellBinPkg: Remove EdkShellBinPkg EdkShellPkg: Remove EdkShellPkg Maintainers.txt: Remove EdkShellPkg and EkdShellBinPkg UnixPkg: Remove UnixPkg and update Maintainers.txt MdeModulePkg: Remove PcdIdentifyMappingPageTablePtr ShellPkg: Remove ShellPkg wrapper header files BaseTools: Remove GenVtf DuetPkg: Remove DuetPkg BaseTools: Remove tools only used by DuetPkg Maintainers.txt: Remove DuetPkg ShellPkg/UefiShellDebug1CommandsLib: Remove the unused function CharToUpper MdeModulePkg/EbcDebugger: Change function names MdePkg/BaseLib: Remove definitions of two functions MdeModulePkg/EbcDebugger: Use AsciiCharToUpper and CharToUpper MdeModulePkg/DxeHttpLib: Use BaseLib api AsciiCharToUpper ShellPkg/Shell: Use BaseLib api CharToUpper ShellPkg/UefiShellLib: Use BaseLib api CharToUpper MdePkg: Change function parameter type MdeModulePkg/S3SaveStateDxe: Change function parameter types MdeModulePkg/SmmS3SaveStateDxe: Change function parameter types BaseTools/tools_def.template: Remove CYGGCC OptionRomPkg/ReadMe.txt: Remove CYGGCC BaseTools: Update MYTOOLS BaseTools/tools_def.template: Remove VS2003 and VS2005 OptionRomPkg/ReadMe.txt: Remove VS2005 BaseTools/tools_def.template: Remove UNIXGCC OvmfPkg/README: Remove UNIXGCC BaseTools/tools_def.template: Remove ELFGCC BaseTools/tools_def.template: Remove DDK3790 BaseTools/build_rule.template: Remove GCCLD MdePkg/BaseLib: Change a variable type in a bitwise operation MdeModulePkg/PropertiesTableAttributesDxe: Remove this driver IntelSiliconPkg/MicrocodeUpdateDxe: Error message enhancement Siyuan Fu (8): ArmVirtPkg: Replace obsoleted network drivers from platform DSC/FDF. ArmVirtPkg: Remove redundant library instances in ArmVirtQemuKernel.dsc MdeModulePkg: Delete Tcp4Dxe in MdeModulePkg. NetworkPkg: Remove some clarification from TcpDxe.inf MdeModulePkg: Delete IScsiDxe in MdeModulePkg. NetworkPkg: Remove some clarification from IScsiDxe.inf MdeModulePkg: Delete UefiPxeBcDxe in MdeModulePkg. NetworkPkg: Remove some clarification from UefiPxeBcDxe.inf Solanki, Digant H (1): IntelSiliconPkg\Include\IndustryStandard: Update IGD_OPREGION_MBOX3 Structure Songpeng Li (3): ShellPkg/TftpDynamicCommand: Change file writing method in tftp NetworkPkg/IScsiDxe: Remove unused global variables. NetworkPkg/Dhcp6Dxe: Remove an unused global variable. Star Zeng (30): Maintainers.txt: Update FmpDevicePkg maintainer Maintainers.txt: Update MdeModulePkg maintainers MdeModulePkg PeiCore: Remove the using of PcdPeiCoreMaxPeimPerFv SecurityPkg Tcg(2)Pei: Remove the using of PcdPeiCoreMaxFvSupported MdeModulePkg PeiCore: Remove the using of PcdPeiCoreMaxFvSupported MdeModulePkg PeiCore: Remove the using of PcdPeiCoreMaxPpiSupported OvmfPkg: Remove PcdPeiCoreMaxXXX PCDs' statement Vlv2TbltDevicePkg: Remove PcdPeiCoreMaxXXX PCDs' statement MdeModulePkg: Remove PcdPeiCoreMaxXXX PCDs MdeModulePkg Variable: Add some missing changes for 9b18845 MdeModulePkg Variable: Abstract InitRealNonVolatileVariableStore MdeModulePkg Variable: Move "extern XXX" to Variable.h MdeModulePkg Variable: Not get NV PCD in VariableWriteServiceInitialize MdeModulePkg Variable: Abstract VariableWriteServiceInitializeDxe/Smm MdeModulePkg Variable: Remove CacheOffset in UpdateVariable() MdeModulePkg Variable: type case VolatileBase to UINTN directly MdeModulePkg: Add PcdEmuVariableNvModeEnable in dec MdeModulePkg: Refine description a little for PcdEmuVariableNvStoreReserved MdeModulePkg Variable: Add emulated variable NV mode support MdeModulePkg VariablePei: Don't check BOOT_IN_RECOVERY_MODE ArmVirtXen: Use merged variable driver for emulated NV mode ArmVirtXen: Link VarCheckUefiLib NULL class library instance BeagleBoardPkg: Use merged variable driver for emulated NV mode QuarkMin: Use merged variable driver for emulated NV mode CorebootPayloadPkg: Use merged variable driver for emulated NV mode MdeModulePkg VariableStandaloneMm: Add PcdEmuVariableNvModeEnable in inf MdeModulePkg: Remove EmuVariableRuntimeDxe MdeModulePkg/PeiCore: Ensure FfsFileHeader 8 bytes aligned MdeModulePkg/DxeCore: Ensure FfsFileHeader 8 bytes aligned IntelFrameworkModulePkg/FwVolDxe: Ensure FfsFileHeader 8 bytes aligned Stefan Berger (1): OvmfPkg: Add TCG2 Configuration menu to the Device Manager menu Sughosh Ganu (3): ArmPkg/Include: Fix the SPM version SVC ID StandaloneMM: Include the newly added library class for MMU functions StandaloneMM: Update permissions for Standalone MM drivers memory area Sumit Garg (2): ArmPkg/OpteeLib: Add dummy RPC handler ArmPkg/OpteeLib: Add OPTEE_SUCCESS return code Sun, Zailiang (1): Maintainers.txt: update Vlv2*Pkg maintainers. Tomasz Michalec (2): MdeModulePkg/SdMmcPciHcDxe: Add UhsSignaling to SdMmcOverride protocol MdeModulePkg/SdMmcPciHcDxe: Add SwitchClockFreqPost to SdMmcOverride Vijayenthiran Subramaniam (2): MdeModulePkg/Variable: add debug logs in VariableServiceSetVariable NetworkPkg/IScsiDxe: add debug logs for failed SetVariable attempts Vladimir Olovyannikov (1): MdeModulePkg/NonDiscoverablePciDeviceDxe: add missing validation Vladimir Olovyannikov via edk2-devel (1): ShellPkg/TftpDynamicCommand: Return proper status Wang Fan (2): NetworkPkg: Add WiFi Connection Manager to NetworkPkg NetworkPkg: Fix Duplicate FreePool Error in WCM Ye Ting (1): Maintainers.txt: Change package maintainer and reviewer of CryptoPkg. Yonghong Zhu (1): Maintainers.txt: Update BaseTools maintainers Yunhua Feng (3): BaseTools: nametuple not have verbose parameter in python3 BaseTools: Remove unnecessary super function BaseTools: replace long by int Zhang, Chao B (6): SecurityPkg: TCG Add more Event type SecurityPkg: Update TCG PFP spec revision. SecurityPkg/Tcg: Fix Warnings and Remarks reported by IASL SecurityPkg/TCG: Upgrade UEFI supporting TCG spec info MdeModulePkg:Tpm2Acpi.h: Upgrade UEFI supporting TCG spec info Maintainers.txt: Change package maintainer and reviewer of SecurityPkg. Zhao, ZhiqiangX (1): BaseTools: AutoGen and GenFds share the parser data. Zhichao Gao (8): ShellPkg: add array index check for shell delay option MdeModulePkg: change the function name ResetSystem MdeModulePkg: Add the new API ResetSystem in the head file MdeModulePkg: Add a new API ResetSystem for DXE ResetSystemLib MdeModulePkg: Add a new API ResetSystem for Null version MdeModulePkg: Add a new API ResetSystem for PEI ResetSystemLib MdeModulePkg: Add a runtime library instance of ResetSystemLib MdeModulePkg: Add the runtime ResetSystemLib in MdeModulePkg.dsc Zhijux Fan (38): BaseTools: Update nasm file build rule to support $(INC) BaseTools: Add $(INC)-like support when compiling .nasm files BaseTools:Build fail when PCD use in the [DEPEX] section of INF files BaseTools:build break if the Path contains SingleFile.Ext BaseTools:The BuildOptionPcd value is wrong BaseTools: Fix Pcd Array changes build report issue. BaseTools:Define Macro in Inf file, the pcdvalue Can't convert BaseTool:Rename xrange() to range() BaseTools:use iterate list to replace the itertools BaseTools: Rename iteritems to items BaseTools: replace get_bytes_le() to bytes_le BaseTools:Solve the data sorting problem use python3 BaseTools: Update argparse arguments since it not have version now BaseTools:Similar to octal data rectification BaseTools/UPT:merge UPT Tool use Python2 and Python3 BaseTools: update Test scripts support python3 BaseTools/Scripts: Porting PackageDocumentTools code to use Python3 Basetools: It went wrong when use os.linesep BaseTools:Fv BaseAddress must set If it not set BaseTools:TestTools character encoding issue BaseTools:Double carriage return inserted from Trim.py on Python3 BaseTools: change the Division Operator BaseTools:There is extra blank line in datalog BaseTools: Similar to octal data rectification BaseTools: Update windows and linux run scripts file to use Python3 BaseTools:Update build tool to print python version information BaseTools:Linux Python highest version check. BaseTools: PCD value incorrect in structure pcd sku case. BaseTools:StructurePCD value display incorrect in "Not used" section. BaseTools:Fix a ECC issue BaseTools:BaseTools supports to the driver combination. BaseTools:Fixed build failure when specifying multiple BUILDTARGET BaseTools:PCD value error in structure pcd sku case. BaseTools:Build fail if define [DEPEX] in library inf BaseTools:Some build generated files content are not ordered on linux BaseTools:PackageDocumentTools import lib error occurs. BaseTools:The BOM character is processed when python reads a file BaseTools:Run packagedoc_cli.py to generate doc failed yuchenlin (5): Revert "OvmfPkg/QemuVideoDxe: list "UnalignedIoInternal.h" in the INF file" Revert "OvmfPkg/QemuVideoDxe: VMWare SVGA device support" Revert "OvmfPkg/QemuVideoDxe: Helper functions for unaligned port I/O." Revert "OvmfPkg: VMWare SVGA display device register definitions" OvmfPkg: simply use the Bochs interface for vmsvga zwei4 (1): Vlv2TbltDevicePkg:Fix build and boot failure of Minnowboard Max platform. Signed-off-by: Laszlo Ersek Reviewed-by: Philippe Mathieu-Daudé --- roms/edk2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roms/edk2 b/roms/edk2 index 85588389222a..89910a39dcfd 160000 --- a/roms/edk2 +++ b/roms/edk2 @@ -1 +1 @@ -Subproject commit 85588389222a3636baf0f9ed8227f2434af4c3f9 +Subproject commit 89910a39dcfd788057caa5d88b7e76e112d187b5 From patchwork Sat Mar 9 00:48:21 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Laszlo Ersek X-Patchwork-Id: 1053776 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=redhat.com Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 44GQrJ3Qkzz9s4Y for ; Sat, 9 Mar 2019 11:54:56 +1100 (AEDT) Received: from localhost ([127.0.0.1]:52120 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1h2QGM-00053c-GN for incoming@patchwork.ozlabs.org; Fri, 08 Mar 2019 19:54:54 -0500 Received: from eggs.gnu.org ([209.51.188.92]:57989) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1h2QAb-0000aq-JW for qemu-devel@nongnu.org; Fri, 08 Mar 2019 19:49:00 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1h2QAa-0001xF-Rj for qemu-devel@nongnu.org; Fri, 08 Mar 2019 19:48:57 -0500 Received: from mx1.redhat.com ([209.132.183.28]:39010) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1h2QAa-0001wo-Kh for qemu-devel@nongnu.org; Fri, 08 Mar 2019 19:48:56 -0500 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id E9329BDD0 for ; Sat, 9 Mar 2019 00:48:55 +0000 (UTC) Received: from lacos-laptop-7.usersys.redhat.com (ovpn-125-221.rdu2.redhat.com [10.10.125.221]) by smtp.corp.redhat.com (Postfix) with ESMTP id 98C161C935; Sat, 9 Mar 2019 00:48:47 +0000 (UTC) From: Laszlo Ersek To: berrange@redhat.com, imammedo@redhat.com, kraxel@redhat.com, mst@redhat.com, philmd@redhat.com, qemu-devel@nongnu.org Date: Sat, 9 Mar 2019 01:48:21 +0100 Message-Id: <20190309004826.9027-6-lersek@redhat.com> In-Reply-To: <20190309004826.9027-1-lersek@redhat.com> References: <20190309004826.9027-1-lersek@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.29]); Sat, 09 Mar 2019 00:48:55 +0000 (UTC) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PATCH 05/10] roms/edk2-funcs.sh: add the qemu_edk2_get_thread_count() function X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" The edk2 "build" utility natively supports building modules (that is, INF files) in parallel. The feature is not useful when building a single module (with the "-m" option), but it is useful for platform firmware builds (which include many modules). Add a function that determines the "-n" option argument for "build", from the MAKEFLAGS variable (i.e. based on the presence of a make job server). Signed-off-by: Laszlo Ersek Reviewed-by: Philippe Mathieu-Daudé Tested-by: Philippe Mathieu-Daudé --- roms/edk2-funcs.sh | 25 ++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/roms/edk2-funcs.sh b/roms/edk2-funcs.sh index 22a5dc8f6ab6..7fc62f074c59 100644 --- a/roms/edk2-funcs.sh +++ b/roms/edk2-funcs.sh @@ -226,3 +226,28 @@ qemu_edk2_set_cross_env() eval "export $cross_prefix_var=\$cross_prefix" } + + +# Determine the "-n" option argument (that is, the number of modules to build +# in parallel) for the edk2 "build" utility. Print the result to the standard +# output. +# +# Parameters: +# $1: the value of the MAKEFLAGS variable +qemu_edk2_get_thread_count() +{ + local makeflags="$1" + + if [[ "$makeflags" == *--jobserver-auth=* ]] || + [[ "$makeflags" == *--jobserver-fds=* ]]; then + # If there is a job server, allow the edk2 "build" utility to parallelize + # as many module builds as there are logical CPUs in the system. The "make" + # instances forked by "build" are supposed to limit themselves through the + # job server. The zero value below causes the edk2 "build" utility to fetch + # the logical CPU count with Python's multiprocessing.cpu_count() method. + printf '0\n' + else + # Build a single module at a time. + printf '1\n' + fi +} From patchwork Sat Mar 9 00:48:22 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Laszlo Ersek X-Patchwork-Id: 1053773 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=redhat.com Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 44GQnb6gbgz9s3q for ; Sat, 9 Mar 2019 11:52:35 +1100 (AEDT) Received: from localhost ([127.0.0.1]:52097 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1h2QE5-0002up-LJ for incoming@patchwork.ozlabs.org; Fri, 08 Mar 2019 19:52:33 -0500 Received: from eggs.gnu.org ([209.51.188.92]:58000) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1h2QAd-0000bA-Qb for qemu-devel@nongnu.org; Fri, 08 Mar 2019 19:49:00 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1h2QAd-0001yh-31 for qemu-devel@nongnu.org; Fri, 08 Mar 2019 19:48:59 -0500 Received: from mx1.redhat.com ([209.132.183.28]:58584) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1h2QAc-0001yD-Sl for qemu-devel@nongnu.org; Fri, 08 Mar 2019 19:48:59 -0500 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 3141FC04BD22 for ; Sat, 9 Mar 2019 00:48:58 +0000 (UTC) Received: from lacos-laptop-7.usersys.redhat.com (ovpn-125-221.rdu2.redhat.com [10.10.125.221]) by smtp.corp.redhat.com (Postfix) with ESMTP id 696D217F8D; Sat, 9 Mar 2019 00:48:56 +0000 (UTC) From: Laszlo Ersek To: berrange@redhat.com, imammedo@redhat.com, kraxel@redhat.com, mst@redhat.com, philmd@redhat.com, qemu-devel@nongnu.org Date: Sat, 9 Mar 2019 01:48:22 +0100 Message-Id: <20190309004826.9027-7-lersek@redhat.com> In-Reply-To: <20190309004826.9027-1-lersek@redhat.com> References: <20190309004826.9027-1-lersek@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.31]); Sat, 09 Mar 2019 00:48:58 +0000 (UTC) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PATCH 06/10] roms/Makefile: replace the $(EFIROM) target with "edk2-basetools" X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" We don't (can't) have a recipe for building just $(EFIROM); therefore, while we call the target $(EFIROM), we actually build all of the edk2 BaseTools. Rename the target to edk2-basetools, and update the iPXE prerequisite accordingly. This will let other targets depend on "edk2-basetools", where an $(EFIROM) pre-requisite would be misleading. Signed-off-by: Laszlo Ersek Reviewed-by: Philippe Mathieu-Daudé Tested-by: Philippe Mathieu-Daudé --- roms/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/roms/Makefile b/roms/Makefile index 78d5dd18c301..2e83ececa25a 100644 --- a/roms/Makefile +++ b/roms/Makefile @@ -102,7 +102,7 @@ pxe-rom-%: build-pxe-roms efirom: $(patsubst %,efi-rom-%,$(pxerom_variants)) -efi-rom-%: build-pxe-roms build-efi-roms $(EFIROM) +efi-rom-%: build-pxe-roms build-efi-roms edk2-basetools $(EFIROM) -f "0x$(VID)" -i "0x$(DID)" -l 0x02 \ -b ipxe/src/bin/$(VID)$(DID).rom \ -ec ipxe/src/bin-i386-efi/$(VID)$(DID).efidrv \ @@ -120,7 +120,7 @@ build-efi-roms: build-pxe-roms $(patsubst %,bin-i386-efi/%.efidrv,$(pxerom_targets)) \ $(patsubst %,bin-x86_64-efi/%.efidrv,$(pxerom_targets)) -$(EFIROM): +edk2-basetools: $(MAKE) -C edk2/BaseTools slof: From patchwork Sat Mar 9 00:48:23 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Laszlo Ersek X-Patchwork-Id: 1053781 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=redhat.com Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 44GQtt101mz9s71 for ; Sat, 9 Mar 2019 11:57:10 +1100 (AEDT) Received: from localhost ([127.0.0.1]:52169 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1h2QIW-0006xY-3A for incoming@patchwork.ozlabs.org; Fri, 08 Mar 2019 19:57:08 -0500 Received: from eggs.gnu.org ([209.51.188.92]:58011) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1h2QAg-0000dG-NQ for qemu-devel@nongnu.org; Fri, 08 Mar 2019 19:49:04 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1h2QAf-00020N-Bd for qemu-devel@nongnu.org; Fri, 08 Mar 2019 19:49:02 -0500 Received: from mx1.redhat.com ([209.132.183.28]:42288) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1h2QAf-0001zi-22 for qemu-devel@nongnu.org; Fri, 08 Mar 2019 19:49:01 -0500 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 547EA30832CB for ; Sat, 9 Mar 2019 00:49:00 +0000 (UTC) Received: from lacos-laptop-7.usersys.redhat.com (ovpn-125-221.rdu2.redhat.com [10.10.125.221]) by smtp.corp.redhat.com (Postfix) with ESMTP id A6E621C935; Sat, 9 Mar 2019 00:48:58 +0000 (UTC) From: Laszlo Ersek To: berrange@redhat.com, imammedo@redhat.com, kraxel@redhat.com, mst@redhat.com, philmd@redhat.com, qemu-devel@nongnu.org Date: Sat, 9 Mar 2019 01:48:23 +0100 Message-Id: <20190309004826.9027-8-lersek@redhat.com> In-Reply-To: <20190309004826.9027-1-lersek@redhat.com> References: <20190309004826.9027-1-lersek@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.44]); Sat, 09 Mar 2019 00:49:00 +0000 (UTC) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PATCH 07/10] roms: build edk2 firmware binaries and variable store templates X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" Add the "efi" target to "Makefile". Introduce "Makefile.edk2" for building and cleaning the firmware images and varstore templates. Collect the common bits from the recipes in the helper script "edk2-build.sh". Signed-off-by: Laszlo Ersek Reviewed-by: Philippe Mathieu-Daudé Tested-by: Philippe Mathieu-Daudé Reviewed-by: Philippe Mathieu-Daudé Tested-by: Philippe Mathieu-Daudé --- roms/Makefile | 5 + roms/Makefile.edk2 | 138 ++++++++++++++++++++ roms/edk2-build.sh | 55 ++++++++ 3 files changed, 198 insertions(+) diff --git a/roms/Makefile b/roms/Makefile index 2e83ececa25a..054b432834ba 100644 --- a/roms/Makefile +++ b/roms/Makefile @@ -61,6 +61,7 @@ default: @echo " skiboot -- update skiboot.lid" @echo " u-boot.e500 -- update u-boot.e500" @echo " u-boot.sam460 -- update u-boot.sam460" + @echo " efi -- update UEFI (edk2) platform firmware" bios: build-seabios-config-seabios-128k build-seabios-config-seabios-256k cp seabios/builds/seabios-128k/bios.bin ../pc-bios/bios.bin @@ -143,6 +144,9 @@ skiboot: $(MAKE) -C skiboot CROSS=$(powerpc64_cross_prefix) cp skiboot/skiboot.lid ../pc-bios/skiboot.lid +efi: edk2-basetools + $(MAKE) -f Makefile.edk2 + clean: rm -rf seabios/.config seabios/out seabios/builds $(MAKE) -C sgabios clean @@ -153,3 +157,4 @@ clean: rm -rf u-boot/build.e500 $(MAKE) -C u-boot-sam460ex distclean $(MAKE) -C skiboot clean + $(MAKE) -f Makefile.edk2 clean diff --git a/roms/Makefile.edk2 b/roms/Makefile.edk2 new file mode 100644 index 000000000000..ad6fff044cd6 --- /dev/null +++ b/roms/Makefile.edk2 @@ -0,0 +1,138 @@ +# Makefile for building firmware binaries and variable store templates for a +# number of virtual platforms in edk2. +# +# Copyright (C) 2019, Red Hat, Inc. +# +# This program and the accompanying materials are licensed and made available +# under the terms and conditions of the BSD License that accompanies this +# distribution. The full text of the license may be found at +# . +# +# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT +# WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. + +toolchain = $(shell source ./edk2-funcs.sh && qemu_edk2_get_toolchain $(1)) + +licenses := \ + edk2/License.txt \ + edk2/OvmfPkg/License.txt \ + edk2/CryptoPkg/Library/OpensslLib/openssl/LICENSE + +# The "edk2-arm-vars.fd" varstore template is suitable for aarch64 as well. +# Similarly, the "edk2-i386-vars.fd" varstore template is suitable for x86_64 +# as well, independently of "secure" too. +all: \ + ../pc-bios/edk2-aarch64-code.fd \ + ../pc-bios/edk2-arm-code.fd \ + ../pc-bios/edk2-i386-code.fd \ + ../pc-bios/edk2-i386-secure-code.fd \ + ../pc-bios/edk2-x86_64-code.fd \ + ../pc-bios/edk2-x86_64-secure-code.fd \ + \ + ../pc-bios/edk2-arm-vars.fd \ + ../pc-bios/edk2-i386-vars.fd \ + \ + ../pc-bios/edk2-licenses.txt + +submodules: + cd edk2 && git submodule update --init --force + +# See notes on the ".NOTPARALLEL" target and the "+" indicator in +# "tests/uefi-test-tools/Makefile". +.NOTPARALLEL: + +../pc-bios/edk2-aarch64-code.fd: submodules + +./edk2-build.sh \ + aarch64 \ + --arch=AARCH64 \ + --platform=ArmVirtPkg/ArmVirtQemu.dsc \ + -D NETWORK_IP6_ENABLE \ + -D HTTP_BOOT_ENABLE + cp edk2/Build/ArmVirtQemu-AARCH64/DEBUG_$(call toolchain,aarch64)/FV/QEMU_EFI.fd \ + $@ + truncate --size=64M $@ + +../pc-bios/edk2-arm-code.fd: submodules + +./edk2-build.sh \ + arm \ + --arch=ARM \ + --platform=ArmVirtPkg/ArmVirtQemu.dsc \ + -D NETWORK_IP6_ENABLE \ + -D HTTP_BOOT_ENABLE + cp edk2/Build/ArmVirtQemu-ARM/DEBUG_$(call toolchain,arm)/FV/QEMU_EFI.fd \ + $@ + truncate --size=64M $@ + +../pc-bios/edk2-i386-code.fd: submodules + +./edk2-build.sh \ + i386 \ + --arch=IA32 \ + --platform=OvmfPkg/OvmfPkgIa32.dsc \ + -D NETWORK_IP6_ENABLE \ + -D HTTP_BOOT_ENABLE \ + -D TLS_ENABLE \ + -D TPM2_ENABLE \ + -D TPM2_CONFIG_ENABLE + cp edk2/Build/OvmfIa32/DEBUG_$(call toolchain,i386)/FV/OVMF_CODE.fd $@ + +../pc-bios/edk2-i386-secure-code.fd: submodules + +./edk2-build.sh \ + i386 \ + --arch=IA32 \ + --platform=OvmfPkg/OvmfPkgIa32.dsc \ + -D NETWORK_IP6_ENABLE \ + -D HTTP_BOOT_ENABLE \ + -D TLS_ENABLE \ + -D TPM2_ENABLE \ + -D TPM2_CONFIG_ENABLE \ + -D SECURE_BOOT_ENABLE \ + -D SMM_REQUIRE + cp edk2/Build/OvmfIa32/DEBUG_$(call toolchain,i386)/FV/OVMF_CODE.fd $@ + +../pc-bios/edk2-x86_64-code.fd: submodules + +./edk2-build.sh \ + x86_64 \ + --arch=X64 \ + --platform=OvmfPkg/OvmfPkgX64.dsc \ + -D NETWORK_IP6_ENABLE \ + -D HTTP_BOOT_ENABLE \ + -D TLS_ENABLE \ + -D TPM2_ENABLE \ + -D TPM2_CONFIG_ENABLE + cp edk2/Build/OvmfX64/DEBUG_$(call toolchain,x86_64)/FV/OVMF_CODE.fd $@ + +../pc-bios/edk2-x86_64-secure-code.fd: submodules + +./edk2-build.sh \ + x86_64 \ + --arch=IA32 \ + --arch=X64 \ + --platform=OvmfPkg/OvmfPkgIa32X64.dsc \ + -D NETWORK_IP6_ENABLE \ + -D HTTP_BOOT_ENABLE \ + -D TLS_ENABLE \ + -D TPM2_ENABLE \ + -D TPM2_CONFIG_ENABLE \ + -D SECURE_BOOT_ENABLE \ + -D SMM_REQUIRE + cp edk2/Build/Ovmf3264/DEBUG_$(call toolchain,x86_64)/FV/OVMF_CODE.fd $@ + +../pc-bios/edk2-arm-vars.fd: ../pc-bios/edk2-arm-code.fd + cp edk2/Build/ArmVirtQemu-ARM/DEBUG_$(call toolchain,arm)/FV/QEMU_VARS.fd \ + $@ + truncate --size=64M $@ + +../pc-bios/edk2-i386-vars.fd: ../pc-bios/edk2-i386-code.fd + cp edk2/Build/OvmfIa32/DEBUG_$(call toolchain,i386)/FV/OVMF_VARS.fd $@ + +# The license file accumulates several individual licenses from under edk2, +# prefixing each individual license with a header (generated by "tail") that +# states its pathname. +../pc-bios/edk2-licenses.txt: submodules + tail -n $(shell cat $(licenses) | wc -l) $(licenses) > $@ + dos2unix $@ + +clean: + rm -rf edk2/Build + cd edk2/Conf && \ + rm -rf .cache BuildEnv.sh build_rule.txt target.txt \ + tools_def.txt diff --git a/roms/edk2-build.sh b/roms/edk2-build.sh new file mode 100755 index 000000000000..936d2c874a22 --- /dev/null +++ b/roms/edk2-build.sh @@ -0,0 +1,55 @@ +#!/bin/bash + +# Wrapper shell script for building a virtual platform firmware in edk2. +# +# Copyright (C) 2019, Red Hat, Inc. +# +# This program and the accompanying materials are licensed and made available +# under the terms and conditions of the BSD License that accompanies this +# distribution. The full text of the license may be found at +# . +# +# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT +# WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. + +set -e -u -C + +# Save the command line arguments. We need to reset $# to 0 before sourcing +# "edksetup.sh", as it will inherit $@. +emulation_target=$1 +shift +num_args=0 +args=() +for arg in "$@"; do + args[num_args++]="$arg" +done +shift $num_args + +cd edk2 + +# Work around . +export PYTHON_COMMAND=python2 + +# Source "edksetup.sh" carefully. +set +e +u +C +source ./edksetup.sh +ret=$? +set -e -u -C +if [ $ret -ne 0 ]; then + exit $ret +fi + +# Fetch some option arguments, and set the cross-compilation environment (if +# any), for the edk2 "build" utility. +source ../edk2-funcs.sh +edk2_toolchain=$(qemu_edk2_get_toolchain "$emulation_target") +edk2_thread_count=$(qemu_edk2_get_thread_count "$MAKEFLAGS") +qemu_edk2_set_cross_env "$emulation_target" + +# Build the platform firmware. +build \ + --cmd-len=65536 \ + -n "$edk2_thread_count" \ + --buildtarget=DEBUG \ + --tagname="$edk2_toolchain" \ + "${args[@]}" From patchwork Sat Mar 9 00:48:24 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Laszlo Ersek X-Patchwork-Id: 1053778 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=redhat.com Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 44GQsK1Cbcz9s71 for ; Sat, 9 Mar 2019 11:55:49 +1100 (AEDT) Received: from localhost ([127.0.0.1]:52144 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1h2QHC-0005o7-VS for incoming@patchwork.ozlabs.org; Fri, 08 Mar 2019 19:55:47 -0500 Received: from eggs.gnu.org ([209.51.188.92]:58024) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1h2QAj-0000gc-HG for qemu-devel@nongnu.org; Fri, 08 Mar 2019 19:49:07 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1h2QAh-00023o-JN for qemu-devel@nongnu.org; Fri, 08 Mar 2019 19:49:05 -0500 Received: from mx1.redhat.com ([209.132.183.28]:57748) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1h2QAh-00023D-9G for qemu-devel@nongnu.org; Fri, 08 Mar 2019 19:49:03 -0500 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 94FC45AFE9 for ; Sat, 9 Mar 2019 00:49:02 +0000 (UTC) Received: from lacos-laptop-7.usersys.redhat.com (ovpn-125-221.rdu2.redhat.com [10.10.125.221]) by smtp.corp.redhat.com (Postfix) with ESMTP id CBACB4532; Sat, 9 Mar 2019 00:49:00 +0000 (UTC) From: Laszlo Ersek To: berrange@redhat.com, imammedo@redhat.com, kraxel@redhat.com, mst@redhat.com, philmd@redhat.com, qemu-devel@nongnu.org Date: Sat, 9 Mar 2019 01:48:24 +0100 Message-Id: <20190309004826.9027-9-lersek@redhat.com> In-Reply-To: <20190309004826.9027-1-lersek@redhat.com> References: <20190309004826.9027-1-lersek@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.39]); Sat, 09 Mar 2019 00:49:02 +0000 (UTC) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PATCH 08/10] pc-bios: add edk2 firmware binaries and variable store templates X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" Add the files built by the last patch: binaries, and the cumulative license text that covers them. Signed-off-by: Laszlo Ersek --- pc-bios/edk2-licenses.txt | 209 ++++++++++++++++++++ pc-bios/edk2-aarch64-code.fd | Bin 0 -> 67108864 bytes pc-bios/edk2-arm-code.fd | Bin 0 -> 67108864 bytes pc-bios/edk2-arm-vars.fd | Bin 0 -> 67108864 bytes pc-bios/edk2-i386-code.fd | Bin 0 -> 3653632 bytes pc-bios/edk2-i386-secure-code.fd | Bin 0 -> 3653632 bytes pc-bios/edk2-i386-vars.fd | Bin 0 -> 540672 bytes pc-bios/edk2-x86_64-code.fd | Bin 0 -> 3653632 bytes pc-bios/edk2-x86_64-secure-code.fd | Bin 0 -> 3653632 bytes 9 files changed, 209 insertions(+) diff --git a/pc-bios/edk2-aarch64-code.fd b/pc-bios/edk2-aarch64-code.fd new file mode 100644 index 000000000000..c6ef5113e8cd Binary files /dev/null and b/pc-bios/edk2-aarch64-code.fd differ diff --git a/pc-bios/edk2-arm-code.fd b/pc-bios/edk2-arm-code.fd new file mode 100644 index 000000000000..2ebd846818d1 Binary files /dev/null and b/pc-bios/edk2-arm-code.fd differ diff --git a/pc-bios/edk2-arm-vars.fd b/pc-bios/edk2-arm-vars.fd new file mode 100644 index 000000000000..a71658f98825 Binary files /dev/null and b/pc-bios/edk2-arm-vars.fd differ diff --git a/pc-bios/edk2-i386-code.fd b/pc-bios/edk2-i386-code.fd new file mode 100644 index 000000000000..df3d24182209 Binary files /dev/null and b/pc-bios/edk2-i386-code.fd differ diff --git a/pc-bios/edk2-i386-secure-code.fd b/pc-bios/edk2-i386-secure-code.fd new file mode 100644 index 000000000000..9f203cdd0d88 Binary files /dev/null and b/pc-bios/edk2-i386-secure-code.fd differ diff --git a/pc-bios/edk2-i386-vars.fd b/pc-bios/edk2-i386-vars.fd new file mode 100644 index 000000000000..efb4f46c09af Binary files /dev/null and b/pc-bios/edk2-i386-vars.fd differ diff --git a/pc-bios/edk2-x86_64-code.fd b/pc-bios/edk2-x86_64-code.fd new file mode 100644 index 000000000000..bf2dd8c4373d Binary files /dev/null and b/pc-bios/edk2-x86_64-code.fd differ diff --git a/pc-bios/edk2-x86_64-secure-code.fd b/pc-bios/edk2-x86_64-secure-code.fd new file mode 100644 index 000000000000..d1a28834ce60 Binary files /dev/null and b/pc-bios/edk2-x86_64-secure-code.fd differ diff --git a/pc-bios/edk2-licenses.txt b/pc-bios/edk2-licenses.txt new file mode 100644 index 000000000000..8bdb1abc993e --- /dev/null +++ b/pc-bios/edk2-licenses.txt @@ -0,0 +1,209 @@ +==> edk2/License.txt <== +Copyright (c) 2004 - 2016, Intel Corporation. All rights reserved. +Copyright (c) 2008 - 2010, Apple Inc. All rights reserved. +Copyright (c) 2011 - 2015, ARM Limited. All rights reserved. +Copyright (c) 2014 - 2015, Linaro Limited. All rights reserved. +Copyright (c) 2013 - 2015, Red Hat, Inc. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +* Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +* Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. + +==> edk2/OvmfPkg/License.txt <== +Copyright (c) 2012, Intel Corporation. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +* Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +* Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. + + +Some files are subject to the following license, the MIT license. Those files +are located in: +- OvmfPkg/Include/IndustryStandard/Xen/ +- OvmfPkg/XenBusDxe/ +- OvmfPkg/XenPvBlkDxe/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +==> edk2/CryptoPkg/Library/OpensslLib/openssl/LICENSE <== + + LICENSE ISSUES + ============== + + The OpenSSL toolkit stays under a double license, i.e. both the conditions of + the OpenSSL License and the original SSLeay license apply to the toolkit. + See below for the actual license texts. + + OpenSSL License + --------------- + +/* ==================================================================== + * Copyright (c) 1998-2018 The OpenSSL Project. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * openssl-core@openssl.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.openssl.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + * ==================================================================== + * + * This product includes cryptographic software written by Eric Young + * (eay@cryptsoft.com). This product includes software written by Tim + * Hudson (tjh@cryptsoft.com). + * + */ + + Original SSLeay License + ----------------------- + +/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) + * All rights reserved. + * + * This package is an SSL implementation written + * by Eric Young (eay@cryptsoft.com). + * The implementation was written so as to conform with Netscapes SSL. + * + * This library is free for commercial and non-commercial use as long as + * the following conditions are aheared to. The following conditions + * apply to all code found in this distribution, be it the RC4, RSA, + * lhash, DES, etc., code; not just the SSL code. The SSL documentation + * included with this distribution is covered by the same copyright terms + * except that the holder is Tim Hudson (tjh@cryptsoft.com). + * + * Copyright remains Eric Young's, and as such any Copyright notices in + * the code are not to be removed. + * If this package is used in a product, Eric Young should be given attribution + * as the author of the parts of the library used. + * This can be in the form of a textual message at program startup or + * in documentation (online or textual) provided with the package. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * "This product includes cryptographic software written by + * Eric Young (eay@cryptsoft.com)" + * The word 'cryptographic' can be left out if the rouines from the library + * being used are not cryptographic related :-). + * 4. If you include any Windows specific code (or a derivative thereof) from + * the apps directory (application code) you must include an acknowledgement: + * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" + * + * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * The licence and distribution terms for any publically available version or + * derivative of this code cannot be changed. i.e. this code cannot simply be + * copied and put under another distribution licence + * [including the GNU Public Licence.] + */ + From patchwork Sat Mar 9 00:48:25 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Laszlo Ersek X-Patchwork-Id: 1053774 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=redhat.com Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 44GQnk60xsz9s4Y for ; Sat, 9 Mar 2019 11:52:42 +1100 (AEDT) Received: from localhost ([127.0.0.1]:52104 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1h2QEB-00030P-EU for incoming@patchwork.ozlabs.org; Fri, 08 Mar 2019 19:52:39 -0500 Received: from eggs.gnu.org ([209.51.188.92]:58032) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1h2QAk-0000jC-Rv for qemu-devel@nongnu.org; Fri, 08 Mar 2019 19:49:08 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1h2QAj-00026A-Ky for qemu-devel@nongnu.org; Fri, 08 Mar 2019 19:49:06 -0500 Received: from mx1.redhat.com ([209.132.183.28]:56608) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1h2QAj-00024Y-BP for qemu-devel@nongnu.org; Fri, 08 Mar 2019 19:49:05 -0500 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id A0827C4EC4 for ; Sat, 9 Mar 2019 00:49:04 +0000 (UTC) Received: from lacos-laptop-7.usersys.redhat.com (ovpn-125-221.rdu2.redhat.com [10.10.125.221]) by smtp.corp.redhat.com (Postfix) with ESMTP id F022A17F8D; Sat, 9 Mar 2019 00:49:02 +0000 (UTC) From: Laszlo Ersek To: berrange@redhat.com, imammedo@redhat.com, kraxel@redhat.com, mst@redhat.com, philmd@redhat.com, qemu-devel@nongnu.org Date: Sat, 9 Mar 2019 01:48:25 +0100 Message-Id: <20190309004826.9027-10-lersek@redhat.com> In-Reply-To: <20190309004826.9027-1-lersek@redhat.com> References: <20190309004826.9027-1-lersek@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.38]); Sat, 09 Mar 2019 00:49:04 +0000 (UTC) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PATCH 09/10] pc-bios: document the edk2 firmware images; add firmware descriptors X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" Update the README file with information on the images added previously, and provide firmware descriptor documents that conform to "docs/interop/firmware.json". Signed-off-by: Laszlo Ersek --- pc-bios/descriptors/50-edk2-i386-secure.json | 34 +++++++++++++++++++ pc-bios/descriptors/50-edk2-x86_64-secure.json | 35 ++++++++++++++++++++ pc-bios/descriptors/60-edk2-aarch64.json | 31 +++++++++++++++++ pc-bios/descriptors/60-edk2-arm.json | 31 +++++++++++++++++ pc-bios/descriptors/60-edk2-i386.json | 33 ++++++++++++++++++ pc-bios/descriptors/60-edk2-x86_64.json | 34 +++++++++++++++++++ pc-bios/README | 11 ++++++ 7 files changed, 209 insertions(+) diff --git a/pc-bios/descriptors/50-edk2-i386-secure.json b/pc-bios/descriptors/50-edk2-i386-secure.json new file mode 100644 index 000000000000..d7108c1da05a --- /dev/null +++ b/pc-bios/descriptors/50-edk2-i386-secure.json @@ -0,0 +1,34 @@ +{ + "description": "UEFI firmware for i386, with Secure Boot and SMM", + "interface-types": [ + "uefi" + ], + "mapping": { + "device": "flash", + "executable": { + "filename": "@DATADIR@/edk2-i386-secure-code.fd", + "format": "raw" + }, + "nvram-template": { + "filename": "@DATADIR@/edk2-i386-vars.fd", + "format": "raw" + } + }, + "targets": [ + { + "architecture": "i386", + "machines": [ + "pc-q35-*" + ] + } + ], + "features": [ + "acpi-s3", + "requires-smm", + "secure-boot", + "verbose-dynamic" + ], + "tags": [ + + ] +} diff --git a/pc-bios/descriptors/50-edk2-x86_64-secure.json b/pc-bios/descriptors/50-edk2-x86_64-secure.json new file mode 100644 index 000000000000..387eb356236b --- /dev/null +++ b/pc-bios/descriptors/50-edk2-x86_64-secure.json @@ -0,0 +1,35 @@ +{ + "description": "UEFI firmware for x86_64, with Secure Boot and SMM", + "interface-types": [ + "uefi" + ], + "mapping": { + "device": "flash", + "executable": { + "filename": "@DATADIR@/edk2-x86_64-secure-code.fd", + "format": "raw" + }, + "nvram-template": { + "filename": "@DATADIR@/edk2-i386-vars.fd", + "format": "raw" + } + }, + "targets": [ + { + "architecture": "x86_64", + "machines": [ + "pc-q35-*" + ] + } + ], + "features": [ + "acpi-s3", + "amd-sev", + "requires-smm", + "secure-boot", + "verbose-dynamic" + ], + "tags": [ + + ] +} diff --git a/pc-bios/descriptors/60-edk2-aarch64.json b/pc-bios/descriptors/60-edk2-aarch64.json new file mode 100644 index 000000000000..800a21bda691 --- /dev/null +++ b/pc-bios/descriptors/60-edk2-aarch64.json @@ -0,0 +1,31 @@ +{ + "description": "UEFI firmware for aarch64", + "interface-types": [ + "uefi" + ], + "mapping": { + "device": "flash", + "executable": { + "filename": "@DATADIR@/edk2-aarch64-code.fd", + "format": "raw" + }, + "nvram-template": { + "filename": "@DATADIR@/edk2-arm-vars.fd", + "format": "raw" + } + }, + "targets": [ + { + "architecture": "aarch64", + "machines": [ + "virt-*" + ] + } + ], + "features": [ + "verbose-static" + ], + "tags": [ + + ] +} diff --git a/pc-bios/descriptors/60-edk2-arm.json b/pc-bios/descriptors/60-edk2-arm.json new file mode 100644 index 000000000000..d5f1bba6cc82 --- /dev/null +++ b/pc-bios/descriptors/60-edk2-arm.json @@ -0,0 +1,31 @@ +{ + "description": "UEFI firmware for arm", + "interface-types": [ + "uefi" + ], + "mapping": { + "device": "flash", + "executable": { + "filename": "@DATADIR@/edk2-arm-code.fd", + "format": "raw" + }, + "nvram-template": { + "filename": "@DATADIR@/edk2-arm-vars.fd", + "format": "raw" + } + }, + "targets": [ + { + "architecture": "arm", + "machines": [ + "virt-*" + ] + } + ], + "features": [ + "verbose-static" + ], + "tags": [ + + ] +} diff --git a/pc-bios/descriptors/60-edk2-i386.json b/pc-bios/descriptors/60-edk2-i386.json new file mode 100644 index 000000000000..2f8dec74fecb --- /dev/null +++ b/pc-bios/descriptors/60-edk2-i386.json @@ -0,0 +1,33 @@ +{ + "description": "UEFI firmware for i386", + "interface-types": [ + "uefi" + ], + "mapping": { + "device": "flash", + "executable": { + "filename": "@DATADIR@/edk2-i386-code.fd", + "format": "raw" + }, + "nvram-template": { + "filename": "@DATADIR@/edk2-i386-vars.fd", + "format": "raw" + } + }, + "targets": [ + { + "architecture": "i386", + "machines": [ + "pc-i440fx-*", + "pc-q35-*" + ] + } + ], + "features": [ + "acpi-s3", + "verbose-dynamic" + ], + "tags": [ + + ] +} diff --git a/pc-bios/descriptors/60-edk2-x86_64.json b/pc-bios/descriptors/60-edk2-x86_64.json new file mode 100644 index 000000000000..968cb65cf973 --- /dev/null +++ b/pc-bios/descriptors/60-edk2-x86_64.json @@ -0,0 +1,34 @@ +{ + "description": "UEFI firmware for x86_64", + "interface-types": [ + "uefi" + ], + "mapping": { + "device": "flash", + "executable": { + "filename": "@DATADIR@/edk2-x86_64-code.fd", + "format": "raw" + }, + "nvram-template": { + "filename": "@DATADIR@/edk2-i386-vars.fd", + "format": "raw" + } + }, + "targets": [ + { + "architecture": "x86_64", + "machines": [ + "pc-i440fx-*", + "pc-q35-*" + ] + } + ], + "features": [ + "acpi-s3", + "amd-sev", + "verbose-dynamic" + ], + "tags": [ + + ] +} diff --git a/pc-bios/README b/pc-bios/README index d421cb3f1f97..4b87e1e975c9 100644 --- a/pc-bios/README +++ b/pc-bios/README @@ -50,3 +50,14 @@ - QemuMacDrivers (https://github.com/ozbenh/QemuMacDrivers) is a project to provide virtualised drivers for PPC MacOS guests. + +- The "edk2-*.fd" images are platform firmware binaries and matching UEFI + variable store templates built from the TianoCore community's EFI Development + Kit II project + . The images + were built at git tag "edk2-stable201903". The firmware binaries bundle parts + of the OpenSSL project, at git tag "OpenSSL_1_1_0j" (the OpenSSL tag is a + function of the edk2 tag). Licensing information is given in + "edk2-licenses.txt". The image files are described by the JSON documents in + the "pc-bios/descriptors" directory, which conform to the + "docs/interop/firmware.json" schema. From patchwork Sat Mar 9 00:48:26 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Laszlo Ersek X-Patchwork-Id: 1053777 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=redhat.com Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 44GQrP470Qz9s4Y for ; Sat, 9 Mar 2019 11:55:01 +1100 (AEDT) Received: from localhost ([127.0.0.1]:52124 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1h2QGR-00057y-IK for incoming@patchwork.ozlabs.org; Fri, 08 Mar 2019 19:54:59 -0500 Received: from eggs.gnu.org ([209.51.188.92]:58054) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1h2QAm-0000lS-Hi for qemu-devel@nongnu.org; Fri, 08 Mar 2019 19:49:09 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1h2QAl-00028C-My for qemu-devel@nongnu.org; Fri, 08 Mar 2019 19:49:08 -0500 Received: from mx1.redhat.com ([209.132.183.28]:36538) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1h2QAl-00027b-GC for qemu-devel@nongnu.org; Fri, 08 Mar 2019 19:49:07 -0500 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id C701C3092656 for ; Sat, 9 Mar 2019 00:49:06 +0000 (UTC) Received: from lacos-laptop-7.usersys.redhat.com (ovpn-125-221.rdu2.redhat.com [10.10.125.221]) by smtp.corp.redhat.com (Postfix) with ESMTP id 07B891C935; Sat, 9 Mar 2019 00:49:04 +0000 (UTC) From: Laszlo Ersek To: berrange@redhat.com, imammedo@redhat.com, kraxel@redhat.com, mst@redhat.com, philmd@redhat.com, qemu-devel@nongnu.org Date: Sat, 9 Mar 2019 01:48:26 +0100 Message-Id: <20190309004826.9027-11-lersek@redhat.com> In-Reply-To: <20190309004826.9027-1-lersek@redhat.com> References: <20190309004826.9027-1-lersek@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.43]); Sat, 09 Mar 2019 00:49:06 +0000 (UTC) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PATCH 10/10] Makefile: install the edk2 firmware images and their descriptors X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" Signed-off-by: Laszlo Ersek --- Makefile | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index d2463c92371f..a29dc5f87a3d 100644 --- a/Makefile +++ b/Makefile @@ -714,9 +714,16 @@ spapr-rtas.bin slof.bin skiboot.lid \ palcode-clipper \ u-boot.e500 u-boot-sam460-20100605.bin \ qemu_vga.ndrv \ -hppa-firmware.img +hppa-firmware.img \ +edk2-aarch64-code.fd edk2-arm-code.fd edk2-i386-code.fd \ +edk2-i386-secure-code.fd edk2-x86_64-code.fd edk2-x86_64-secure-code.fd \ +edk2-arm-vars.fd edk2-i386-vars.fd edk2-licenses.txt + +DESCS=50-edk2-i386-secure.json 50-edk2-x86_64-secure.json \ +60-edk2-aarch64.json 60-edk2-arm.json 60-edk2-i386.json 60-edk2-x86_64.json else BLOBS= +DESCS= endif define install-manual = @@ -797,6 +804,14 @@ ifneq ($(BLOBS),) set -e; for x in $(BLOBS); do \ $(INSTALL_DATA) $(SRC_PATH)/pc-bios/$$x "$(DESTDIR)$(qemu_datadir)"; \ done + $(INSTALL_DIR) "$(DESTDIR)$(qemu_datadir)/firmware" + set -e; tmpf=$$(mktemp); trap 'rm -f -- "$$tmpf"' EXIT; \ + for x in $(DESCS); do \ + sed -e 's,@DATADIR@,$(DESTDIR)$(qemu_datadir),' \ + "$(SRC_PATH)/pc-bios/descriptors/$$x" > "$$tmpf"; \ + $(INSTALL_DATA) "$$tmpf" \ + "$(DESTDIR)$(qemu_datadir)/firmware/$$x"; \ + done endif for s in $(ICON_SIZES); do \ mkdir -p "$(DESTDIR)/$(qemu_icondir)/hicolor/$${s}/apps"; \