From patchwork Thu Mar 21 11:33:57 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Laszlo Ersek X-Patchwork-Id: 10863339 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 95A0E14DE for ; Thu, 21 Mar 2019 11:47:44 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 6C7FE2A0A8 for ; Thu, 21 Mar 2019 11:47:44 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 5FDCA2A0BC; Thu, 21 Mar 2019 11:47:44 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-0.4 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, SORTED_RECIPS autolearn=no version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id A1CDD2A0A8 for ; Thu, 21 Mar 2019 11:47:43 +0000 (UTC) Received: from localhost ([127.0.0.1]:35423 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1h6wAh-0004Fp-1C for patchwork-qemu-devel@patchwork.kernel.org; Thu, 21 Mar 2019 07:47:43 -0400 Received: from eggs.gnu.org ([209.51.188.92]:55839) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1h6w0a-0004Zc-KH for qemu-devel@nongnu.org; Thu, 21 Mar 2019 07:37:18 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1h6vxq-00011z-Gh for qemu-devel@nongnu.org; Thu, 21 Mar 2019 07:34:28 -0400 Received: from mx1.redhat.com ([209.132.183.28]:60372) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1h6vxn-00010B-O8 for qemu-devel@nongnu.org; Thu, 21 Mar 2019 07:34:24 -0400 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 023B885365; Thu, 21 Mar 2019 11:34:23 +0000 (UTC) Received: from lacos-laptop-7.usersys.redhat.com (ovpn-120-143.rdu2.redhat.com [10.10.120.143]) by smtp.corp.redhat.com (Postfix) with ESMTP id A282E5D9C4; Thu, 21 Mar 2019 11:34:20 +0000 (UTC) From: Laszlo Ersek To: berrange@redhat.com, eblake@redhat.com, f4bug@amsat.org, imammedo@redhat.com, kraxel@redhat.com, mprivozn@redhat.com, mst@redhat.com, peter.maydell@linaro.org, philmd@redhat.com, qemu-devel@nongnu.org Date: Thu, 21 Mar 2019 12:33:57 +0100 Message-Id: <20190321113408.19929-2-lersek@redhat.com> In-Reply-To: <20190321113408.19929-1-lersek@redhat.com> References: <20190321113408.19929-1-lersek@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.25]); Thu, 21 Mar 2019 11:34:23 +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 for-4.1 v3 01/12] 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+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP 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é Reviewed-by: Michal Privoznik Reviewed-by: Michael S. Tsirkin Tested-by: Igor Mammedov --- Notes: v3: - pick up Igor's T-b v2: - Pick up Phil's R-b and T-b. (I hope that's okay, after the discussion about cross-building on Ubuntu and/or with Linaro toolchains!) - drop comma after copyright year, in the new file [Eric] - clarify in the leading comment of "edk2-funcs.sh" that the file requires bash [Phil, Eric] - pick up Michal's and Michael's R-b's 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..8930479dcb44 --- /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, in a bash environment. +# +# 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 Thu Mar 21 11:33:58 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Laszlo Ersek X-Patchwork-Id: 10863333 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 4363C17E0 for ; Thu, 21 Mar 2019 11:44:42 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 2276A29E3E for ; Thu, 21 Mar 2019 11:44:42 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 1257E29E4F; Thu, 21 Mar 2019 11:44:42 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-0.4 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, SORTED_RECIPS autolearn=no version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id B3D2D29E3E for ; Thu, 21 Mar 2019 11:44:41 +0000 (UTC) Received: from localhost ([127.0.0.1]:35338 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1h6w7k-00028H-Qu for patchwork-qemu-devel@patchwork.kernel.org; Thu, 21 Mar 2019 07:44:40 -0400 Received: from eggs.gnu.org ([209.51.188.92]:55839) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1h6w0Z-0004Zc-Jd for qemu-devel@nongnu.org; Thu, 21 Mar 2019 07:37:16 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1h6vxs-00013I-Md for qemu-devel@nongnu.org; Thu, 21 Mar 2019 07:34:29 -0400 Received: from mx1.redhat.com ([209.132.183.28]:40630) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1h6vxs-00011h-DH for qemu-devel@nongnu.org; Thu, 21 Mar 2019 07:34:28 -0400 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id A39CFF74C5; Thu, 21 Mar 2019 11:34:25 +0000 (UTC) Received: from lacos-laptop-7.usersys.redhat.com (ovpn-120-143.rdu2.redhat.com [10.10.120.143]) by smtp.corp.redhat.com (Postfix) with ESMTP id 511705D9C4; Thu, 21 Mar 2019 11:34:23 +0000 (UTC) From: Laszlo Ersek To: berrange@redhat.com, eblake@redhat.com, f4bug@amsat.org, imammedo@redhat.com, kraxel@redhat.com, mprivozn@redhat.com, mst@redhat.com, peter.maydell@linaro.org, philmd@redhat.com, qemu-devel@nongnu.org Date: Thu, 21 Mar 2019 12:33:58 +0100 Message-Id: <20190321113408.19929-3-lersek@redhat.com> In-Reply-To: <20190321113408.19929-1-lersek@redhat.com> References: <20190321113408.19929-1-lersek@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.38]); Thu, 21 Mar 2019 11:34:25 +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 for-4.1 v3 02/12] 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+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP 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é Reviewed-by: Michal Privoznik Reviewed-by: Michael S. Tsirkin Tested-by: Igor Mammedov --- Notes: v3: - pick up Igor's T-b v2: - pick up Phil's R-b / T-b - pick up Michal's and Michael's R-b's 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 8930479dcb44..d1cb1e4a111e 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 Thu Mar 21 11:33:59 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Laszlo Ersek X-Patchwork-Id: 10863331 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 0805317E0 for ; Thu, 21 Mar 2019 11:44:31 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id DEE9E29B86 for ; Thu, 21 Mar 2019 11:44:30 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id D2A6929BB8; Thu, 21 Mar 2019 11:44:30 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-0.4 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, SORTED_RECIPS autolearn=no version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id DBE4029B86 for ; Thu, 21 Mar 2019 11:44:29 +0000 (UTC) Received: from localhost ([127.0.0.1]:35336 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1h6w7Y-0001xR-Ic for patchwork-qemu-devel@patchwork.kernel.org; Thu, 21 Mar 2019 07:44:28 -0400 Received: from eggs.gnu.org ([209.51.188.92]:55839) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1h6w0Y-0004Zc-AK for qemu-devel@nongnu.org; Thu, 21 Mar 2019 07:37:15 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1h6vxw-00016s-94 for qemu-devel@nongnu.org; Thu, 21 Mar 2019 07:34:33 -0400 Received: from mx1.redhat.com ([209.132.183.28]:12770) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1h6vxv-00014R-N1 for qemu-devel@nongnu.org; Thu, 21 Mar 2019 07:34:31 -0400 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id EC0AD308421A; Thu, 21 Mar 2019 11:34:30 +0000 (UTC) Received: from lacos-laptop-7.usersys.redhat.com (ovpn-120-143.rdu2.redhat.com [10.10.120.143]) by smtp.corp.redhat.com (Postfix) with ESMTP id B49B65D9C4; Thu, 21 Mar 2019 11:34:26 +0000 (UTC) From: Laszlo Ersek To: berrange@redhat.com, eblake@redhat.com, f4bug@amsat.org, imammedo@redhat.com, kraxel@redhat.com, mprivozn@redhat.com, mst@redhat.com, peter.maydell@linaro.org, philmd@redhat.com, qemu-devel@nongnu.org Date: Thu, 21 Mar 2019 12:33:59 +0100 Message-Id: <20190321113408.19929-4-lersek@redhat.com> In-Reply-To: <20190321113408.19929-1-lersek@redhat.com> References: <20190321113408.19929-1-lersek@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.40]); Thu, 21 Mar 2019 11:34:31 +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 for-4.1 v3 03/12] 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+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP 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é Reviewed-by: Michal Privoznik Reviewed-by: Michael S. Tsirkin Tested-by: Igor Mammedov --- Notes: v3: - pick up Igor's T-b v2: - pick up Phil's R-b / T-b - pick up Michal's and Michael's R-b's 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 Thu Mar 21 11:34:00 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Laszlo Ersek X-Patchwork-Id: 10863335 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 7E5871515 for ; Thu, 21 Mar 2019 11:44:51 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 5ABE429E3E for ; Thu, 21 Mar 2019 11:44:51 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 4B55229E50; Thu, 21 Mar 2019 11:44:51 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: * X-Spam-Status: No, score=1.6 required=2.0 tests=BAYES_00,DRUGS_ERECTILE, MAILING_LIST_MULTI,SORTED_RECIPS autolearn=no version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 362AF29E3E for ; Thu, 21 Mar 2019 11:44:49 +0000 (UTC) Received: from localhost ([127.0.0.1]:35340 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1h6w7s-0002M6-Hy for patchwork-qemu-devel@patchwork.kernel.org; Thu, 21 Mar 2019 07:44:48 -0400 Received: from eggs.gnu.org ([209.51.188.92]:55777) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1h6w0W-0004TT-DK for qemu-devel@nongnu.org; Thu, 21 Mar 2019 07:37:16 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1h6vy5-0001DU-5e for qemu-devel@nongnu.org; Thu, 21 Mar 2019 07:34:46 -0400 Received: from mx1.redhat.com ([209.132.183.28]:38648) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1h6vy4-0001Cw-H0 for qemu-devel@nongnu.org; Thu, 21 Mar 2019 07:34:41 -0400 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id C47162D813; Thu, 21 Mar 2019 11:34:39 +0000 (UTC) Received: from lacos-laptop-7.usersys.redhat.com (ovpn-120-143.rdu2.redhat.com [10.10.120.143]) by smtp.corp.redhat.com (Postfix) with ESMTP id 4FDD85D9C4; Thu, 21 Mar 2019 11:34:31 +0000 (UTC) From: Laszlo Ersek To: berrange@redhat.com, eblake@redhat.com, f4bug@amsat.org, imammedo@redhat.com, kraxel@redhat.com, mprivozn@redhat.com, mst@redhat.com, peter.maydell@linaro.org, philmd@redhat.com, qemu-devel@nongnu.org Date: Thu, 21 Mar 2019 12:34:00 +0100 Message-Id: <20190321113408.19929-5-lersek@redhat.com> In-Reply-To: <20190321113408.19929-1-lersek@redhat.com> References: <20190321113408.19929-1-lersek@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.30]); Thu, 21 Mar 2019 11:34: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 for-4.1 v3 04/12] 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+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP 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é Reviewed-by: Michal Privoznik Reviewed-by: Michael S. Tsirkin Tested-by: Igor Mammedov --- Notes: v3: - pick up Igor's T-b v2: - pick up Phil's R-b - pick up Michal's and Michael's R-b's 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 Thu Mar 21 11:34:01 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Laszlo Ersek X-Patchwork-Id: 10863329 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id B39121823 for ; Thu, 21 Mar 2019 11:41:53 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 96D9C28D19 for ; Thu, 21 Mar 2019 11:41:53 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 8B5FB2A0DE; Thu, 21 Mar 2019 11:41:53 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-0.4 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, SORTED_RECIPS autolearn=no version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 31D8928D19 for ; Thu, 21 Mar 2019 11:41:53 +0000 (UTC) Received: from localhost ([127.0.0.1]:35296 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1h6w52-0008SJ-Ev for patchwork-qemu-devel@patchwork.kernel.org; Thu, 21 Mar 2019 07:41:52 -0400 Received: from eggs.gnu.org ([209.51.188.92]:55839) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1h6w0X-0004Zc-56 for qemu-devel@nongnu.org; Thu, 21 Mar 2019 07:37:14 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1h6vy7-0001HL-FI for qemu-devel@nongnu.org; Thu, 21 Mar 2019 07:34:44 -0400 Received: from mx1.redhat.com ([209.132.183.28]:45909) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1h6vy7-0001Fj-5i for qemu-devel@nongnu.org; Thu, 21 Mar 2019 07:34:43 -0400 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 6E8925D5E6; Thu, 21 Mar 2019 11:34:42 +0000 (UTC) Received: from lacos-laptop-7.usersys.redhat.com (ovpn-120-143.rdu2.redhat.com [10.10.120.143]) by smtp.corp.redhat.com (Postfix) with ESMTP id 22E895D9C4; Thu, 21 Mar 2019 11:34:39 +0000 (UTC) From: Laszlo Ersek To: berrange@redhat.com, eblake@redhat.com, f4bug@amsat.org, imammedo@redhat.com, kraxel@redhat.com, mprivozn@redhat.com, mst@redhat.com, peter.maydell@linaro.org, philmd@redhat.com, qemu-devel@nongnu.org Date: Thu, 21 Mar 2019 12:34:01 +0100 Message-Id: <20190321113408.19929-6-lersek@redhat.com> In-Reply-To: <20190321113408.19929-1-lersek@redhat.com> References: <20190321113408.19929-1-lersek@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.39]); Thu, 21 Mar 2019 11:34: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 for-4.1 v3 05/12] 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+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP 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é Reviewed-by: Michal Privoznik Reviewed-by: Michael S. Tsirkin Tested-by: Igor Mammedov --- Notes: v3: - pick up Igor's T-b v2: - pick up Phil's R-b / T-b - pick up Michal's and Michael's R-b's roms/edk2-funcs.sh | 25 ++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/roms/edk2-funcs.sh b/roms/edk2-funcs.sh index d1cb1e4a111e..a9fae7ee891b 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 Thu Mar 21 11:34:02 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Laszlo Ersek X-Patchwork-Id: 10863325 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id CF00617E0 for ; Thu, 21 Mar 2019 11:41:43 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id AEB4B28A6D for ; Thu, 21 Mar 2019 11:41:43 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id A26DD28D19; Thu, 21 Mar 2019 11:41:43 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-0.4 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, SORTED_RECIPS autolearn=no version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 5FCE128A6D for ; Thu, 21 Mar 2019 11:41:43 +0000 (UTC) Received: from localhost ([127.0.0.1]:35292 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1h6w4s-0008Ij-Jn for patchwork-qemu-devel@patchwork.kernel.org; Thu, 21 Mar 2019 07:41:42 -0400 Received: from eggs.gnu.org ([209.51.188.92]:55777) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1h6w0V-0004TT-Ay for qemu-devel@nongnu.org; Thu, 21 Mar 2019 07:37:12 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1h6vyB-0001Mb-VC for qemu-devel@nongnu.org; Thu, 21 Mar 2019 07:34:49 -0400 Received: from mx1.redhat.com ([209.132.183.28]:48668) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1h6vyB-0001Jz-6W for qemu-devel@nongnu.org; Thu, 21 Mar 2019 07:34:47 -0400 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 2069B3024552; Thu, 21 Mar 2019 11:34:45 +0000 (UTC) Received: from lacos-laptop-7.usersys.redhat.com (ovpn-120-143.rdu2.redhat.com [10.10.120.143]) by smtp.corp.redhat.com (Postfix) with ESMTP id C47175D9C4; Thu, 21 Mar 2019 11:34:42 +0000 (UTC) From: Laszlo Ersek To: berrange@redhat.com, eblake@redhat.com, f4bug@amsat.org, imammedo@redhat.com, kraxel@redhat.com, mprivozn@redhat.com, mst@redhat.com, peter.maydell@linaro.org, philmd@redhat.com, qemu-devel@nongnu.org Date: Thu, 21 Mar 2019 12:34:02 +0100 Message-Id: <20190321113408.19929-7-lersek@redhat.com> In-Reply-To: <20190321113408.19929-1-lersek@redhat.com> References: <20190321113408.19929-1-lersek@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.49]); Thu, 21 Mar 2019 11:34:45 +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 for-4.1 v3 06/12] 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+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP 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é Reviewed-by: Michal Privoznik Reviewed-by: Michael S. Tsirkin Tested-by: Igor Mammedov --- Notes: v3: - pick up Igor's T-b v2: - pick up Phil's R-b / T-b - pick up Michal's and Michael's R-b's 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 Thu Mar 21 11:34:03 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Laszlo Ersek X-Patchwork-Id: 10863321 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 80A1717E0 for ; Thu, 21 Mar 2019 11:38:46 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 616B829AEB for ; Thu, 21 Mar 2019 11:38:46 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 55C7629BBF; Thu, 21 Mar 2019 11:38:46 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-0.4 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, SORTED_RECIPS autolearn=no version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 9EEDD2A067 for ; Thu, 21 Mar 2019 11:38:45 +0000 (UTC) Received: from localhost ([127.0.0.1]:35240 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1h6w20-0005nV-U8 for patchwork-qemu-devel@patchwork.kernel.org; Thu, 21 Mar 2019 07:38:44 -0400 Received: from eggs.gnu.org ([209.51.188.92]:55777) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1h6w0T-0004TT-CI for qemu-devel@nongnu.org; Thu, 21 Mar 2019 07:37:11 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1h6vyH-0001Sd-Kf for qemu-devel@nongnu.org; Thu, 21 Mar 2019 07:34:59 -0400 Received: from mx1.redhat.com ([209.132.183.28]:41992) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1h6vyD-0001Mh-QB for qemu-devel@nongnu.org; Thu, 21 Mar 2019 07:34:50 -0400 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id C103C3084032; Thu, 21 Mar 2019 11:34:47 +0000 (UTC) Received: from lacos-laptop-7.usersys.redhat.com (ovpn-120-143.rdu2.redhat.com [10.10.120.143]) by smtp.corp.redhat.com (Postfix) with ESMTP id 7546B5D9C4; Thu, 21 Mar 2019 11:34:45 +0000 (UTC) From: Laszlo Ersek To: berrange@redhat.com, eblake@redhat.com, f4bug@amsat.org, imammedo@redhat.com, kraxel@redhat.com, mprivozn@redhat.com, mst@redhat.com, peter.maydell@linaro.org, philmd@redhat.com, qemu-devel@nongnu.org Date: Thu, 21 Mar 2019 12:34:03 +0100 Message-Id: <20190321113408.19929-8-lersek@redhat.com> In-Reply-To: <20190321113408.19929-1-lersek@redhat.com> References: <20190321113408.19929-1-lersek@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.40]); Thu, 21 Mar 2019 11:34: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 for-4.1 v3 07/12] 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+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP 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: Michal Privoznik Reviewed-by: Philippe Mathieu-Daudé Reviewed-by: Michael S. Tsirkin --- Notes: v3: - pick up Michal's R-b - pick up Phil's R-b - pick up Michael's R-b - compress FD files with bzip2 rather than xz, so that decompression at "make install" time succeed on older build OSes too [Peter] - do not pick up Phil's T-b, consequently - do not pick up Igor's T-b for the same reason v2: - drop comma after copyright year, in both new files [Eric] - define the SHELL macro as /bin/bash near the top of "Makefile.edk2", so that various bashisms (e.g. the "source" built-in, and the == operator of "[") work even if /bin/sh isn't bash [Phil, Eric] - rework "Makefile.edk2" to produce xz-compressed flash device files [Dan, Michael, Phil]: - add implicit rule for compression, - mark uncompressed FD files as intermediate, - factor out the "flashdevs" macro for sharing between the "all" and ".INTERMEDIATE" targets - due to said rework above, do not pick up Phil's R-b / T-b, and Michal's and Michael's R-b's roms/Makefile | 5 + roms/Makefile.edk2 | 148 ++++++++++++++++++++ roms/edk2-build.sh | 55 ++++++++ 3 files changed, 208 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..822c547fec64 --- /dev/null +++ b/roms/Makefile.edk2 @@ -0,0 +1,148 @@ +# 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. + +SHELL = /bin/bash + +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. +flashdevs := \ + aarch64-code \ + arm-code \ + i386-code \ + i386-secure-code \ + x86_64-code \ + x86_64-secure-code \ + \ + arm-vars \ + i386-vars + +all: $(foreach flashdev,$(flashdevs),../pc-bios/edk2-$(flashdev).fd.bz2) \ + ../pc-bios/edk2-licenses.txt + +../pc-bios/edk2-%.fd.bz2: ../pc-bios/edk2-%.fd + bzip2 -9 -c $< > $@ + +# When the build completes, we need not keep the uncompressed flash device +# files. +.INTERMEDIATE: $(foreach flashdev,$(flashdevs),../pc-bios/edk2-$(flashdev).fd) + +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..4f46f8a6a217 --- /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 Thu Mar 21 11:34:04 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Laszlo Ersek X-Patchwork-Id: 10863327 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id DD3861515 for ; Thu, 21 Mar 2019 11:41:52 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id BE4B928D19 for ; Thu, 21 Mar 2019 11:41:52 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id AF6762A06C; Thu, 21 Mar 2019 11:41:52 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-0.4 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, SORTED_RECIPS autolearn=no version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id C6CCF28D19 for ; Thu, 21 Mar 2019 11:41:50 +0000 (UTC) Received: from localhost ([127.0.0.1]:35294 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1h6w50-0008Or-3o for patchwork-qemu-devel@patchwork.kernel.org; Thu, 21 Mar 2019 07:41:50 -0400 Received: from eggs.gnu.org ([209.51.188.92]:55777) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1h6w0R-0004TT-6m for qemu-devel@nongnu.org; Thu, 21 Mar 2019 07:37:09 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1h6vyR-0001cD-5l for qemu-devel@nongnu.org; Thu, 21 Mar 2019 07:35:05 -0400 Received: from mx1.redhat.com ([209.132.183.28]:45250) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1h6vyI-0001Ol-U1 for qemu-devel@nongnu.org; Thu, 21 Mar 2019 07:34:59 -0400 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 7130F308339B; Thu, 21 Mar 2019 11:34:50 +0000 (UTC) Received: from lacos-laptop-7.usersys.redhat.com (ovpn-120-143.rdu2.redhat.com [10.10.120.143]) by smtp.corp.redhat.com (Postfix) with ESMTP id 226275D9C4; Thu, 21 Mar 2019 11:34:47 +0000 (UTC) From: Laszlo Ersek To: berrange@redhat.com, eblake@redhat.com, f4bug@amsat.org, imammedo@redhat.com, kraxel@redhat.com, mprivozn@redhat.com, mst@redhat.com, peter.maydell@linaro.org, philmd@redhat.com, qemu-devel@nongnu.org Date: Thu, 21 Mar 2019 12:34:04 +0100 Message-Id: <20190321113408.19929-9-lersek@redhat.com> In-Reply-To: <20190321113408.19929-1-lersek@redhat.com> References: <20190321113408.19929-1-lersek@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.44]); Thu, 21 Mar 2019 11:34:50 +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 for-4.1 v3 08/12] 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+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP Add the files built by the last patch: (compressed) binaries, and the cumulative license text that covers them. Signed-off-by: Laszlo Ersek Reviewed-by: Michal Privoznik Reviewed-by: Philippe Mathieu-Daudé Reviewed-by: Michael S. Tsirkin --- Notes: v3: - pick up Michal's R-b - pick up Phil's R-b - pick up Michael's R-b - Compress FD files with bzip2 rather than xz, so that decompression at "make install" time succeed on older build OSes too. The total size grows from 9,394,072 bytes to 9,492,846. [Peter] - do not pick up Igor's T-b therefore v2: - capture the compressed build outputs of the last patch; slightly update the commit message [Dan, Michael, Phil] - consequently, do not pick up Michal's and Michael's R-b's pc-bios/edk2-licenses.txt | 209 ++++++++++++++++++++ pc-bios/edk2-aarch64-code.fd.bz2 | Bin 0 -> 1177603 bytes pc-bios/edk2-arm-code.fd.bz2 | Bin 0 -> 1173662 bytes pc-bios/edk2-arm-vars.fd.bz2 | Bin 0 -> 263 bytes pc-bios/edk2-i386-code.fd.bz2 | Bin 0 -> 1688659 bytes pc-bios/edk2-i386-secure-code.fd.bz2 | Bin 0 -> 1881979 bytes pc-bios/edk2-i386-vars.fd.bz2 | Bin 0 -> 190 bytes pc-bios/edk2-x86_64-code.fd.bz2 | Bin 0 -> 1669280 bytes pc-bios/edk2-x86_64-secure-code.fd.bz2 | Bin 0 -> 1901210 bytes 9 files changed, 209 insertions(+) diff --git a/pc-bios/edk2-aarch64-code.fd.bz2 b/pc-bios/edk2-aarch64-code.fd.bz2 new file mode 100644 index 000000000000..b213334d9553 Binary files /dev/null and b/pc-bios/edk2-aarch64-code.fd.bz2 differ diff --git a/pc-bios/edk2-arm-code.fd.bz2 b/pc-bios/edk2-arm-code.fd.bz2 new file mode 100644 index 000000000000..a494a8391eed Binary files /dev/null and b/pc-bios/edk2-arm-code.fd.bz2 differ diff --git a/pc-bios/edk2-arm-vars.fd.bz2 b/pc-bios/edk2-arm-vars.fd.bz2 new file mode 100644 index 000000000000..2a5a9af31a6c Binary files /dev/null and b/pc-bios/edk2-arm-vars.fd.bz2 differ diff --git a/pc-bios/edk2-i386-code.fd.bz2 b/pc-bios/edk2-i386-code.fd.bz2 new file mode 100644 index 000000000000..5440ca856db6 Binary files /dev/null and b/pc-bios/edk2-i386-code.fd.bz2 differ diff --git a/pc-bios/edk2-i386-secure-code.fd.bz2 b/pc-bios/edk2-i386-secure-code.fd.bz2 new file mode 100644 index 000000000000..24ae88ac3e40 Binary files /dev/null and b/pc-bios/edk2-i386-secure-code.fd.bz2 differ diff --git a/pc-bios/edk2-i386-vars.fd.bz2 b/pc-bios/edk2-i386-vars.fd.bz2 new file mode 100644 index 000000000000..4a1bc4523880 Binary files /dev/null and b/pc-bios/edk2-i386-vars.fd.bz2 differ diff --git a/pc-bios/edk2-x86_64-code.fd.bz2 b/pc-bios/edk2-x86_64-code.fd.bz2 new file mode 100644 index 000000000000..6a0b1f983199 Binary files /dev/null and b/pc-bios/edk2-x86_64-code.fd.bz2 differ diff --git a/pc-bios/edk2-x86_64-secure-code.fd.bz2 b/pc-bios/edk2-x86_64-secure-code.fd.bz2 new file mode 100644 index 000000000000..3ef6452c0375 Binary files /dev/null and b/pc-bios/edk2-x86_64-secure-code.fd.bz2 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 Thu Mar 21 11:34:05 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Laszlo Ersek X-Patchwork-Id: 10863319 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 6329B1515 for ; Thu, 21 Mar 2019 11:38:38 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 4691629A9D for ; Thu, 21 Mar 2019 11:38:38 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 3AFA42A06C; Thu, 21 Mar 2019 11:38:38 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-0.4 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, SORTED_RECIPS autolearn=no version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id A3D1E2A067 for ; Thu, 21 Mar 2019 11:38:37 +0000 (UTC) Received: from localhost ([127.0.0.1]:35238 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1h6w1s-0005iy-Vb for patchwork-qemu-devel@patchwork.kernel.org; Thu, 21 Mar 2019 07:38:37 -0400 Received: from eggs.gnu.org ([209.51.188.92]:55777) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1h6w0P-0004TT-LJ for qemu-devel@nongnu.org; Thu, 21 Mar 2019 07:37:07 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1h6vyT-0001eV-Fr for qemu-devel@nongnu.org; Thu, 21 Mar 2019 07:35:07 -0400 Received: from mx1.redhat.com ([209.132.183.28]:42064) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1h6vyR-0001WR-As for qemu-devel@nongnu.org; Thu, 21 Mar 2019 07:35:03 -0400 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 31D323084299; Thu, 21 Mar 2019 11:34:59 +0000 (UTC) Received: from lacos-laptop-7.usersys.redhat.com (ovpn-120-143.rdu2.redhat.com [10.10.120.143]) by smtp.corp.redhat.com (Postfix) with ESMTP id C7CB35D9C4; Thu, 21 Mar 2019 11:34:50 +0000 (UTC) From: Laszlo Ersek To: berrange@redhat.com, eblake@redhat.com, f4bug@amsat.org, imammedo@redhat.com, kraxel@redhat.com, mprivozn@redhat.com, mst@redhat.com, peter.maydell@linaro.org, philmd@redhat.com, qemu-devel@nongnu.org Date: Thu, 21 Mar 2019 12:34:05 +0100 Message-Id: <20190321113408.19929-10-lersek@redhat.com> In-Reply-To: <20190321113408.19929-1-lersek@redhat.com> References: <20190321113408.19929-1-lersek@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.40]); Thu, 21 Mar 2019 11:34:59 +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 for-4.1 v3 09/12] 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+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP 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 Reviewed-by: Michal Privoznik Reviewed-by: Michael S. Tsirkin Tested-by: Igor Mammedov --- Notes: v3: - refer to "edk2-*.fd.bz2" rather than "edk2-*.fd.xz" in the README [Peter] - pick up Igor's T-b still v2: - refer to "edk2-*.fd.xz" rather than "edk2-*.fd" in the README hunk [Dan, Michael, Phil] - pick up Michal's and Michael's R-b's 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..807d95dd5418 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.bz2" 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 Thu Mar 21 11:34:06 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Laszlo Ersek X-Patchwork-Id: 10863317 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 74F0A17E0 for ; Thu, 21 Mar 2019 11:38:34 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 581122A067 for ; Thu, 21 Mar 2019 11:38:34 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 4C5002A0BC; Thu, 21 Mar 2019 11:38:34 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-0.4 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, SORTED_RECIPS autolearn=no version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id F1E522A067 for ; Thu, 21 Mar 2019 11:38:33 +0000 (UTC) Received: from localhost ([127.0.0.1]:35236 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1h6w1p-0005f9-2z for patchwork-qemu-devel@patchwork.kernel.org; Thu, 21 Mar 2019 07:38:33 -0400 Received: from eggs.gnu.org ([209.51.188.92]:55777) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1h6w0O-0004TT-KY for qemu-devel@nongnu.org; Thu, 21 Mar 2019 07:37:05 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1h6vyT-0001eP-FJ for qemu-devel@nongnu.org; Thu, 21 Mar 2019 07:35:09 -0400 Received: from mx1.redhat.com ([209.132.183.28]:9818) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1h6vyR-0001al-77 for qemu-devel@nongnu.org; Thu, 21 Mar 2019 07:35:03 -0400 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id D3CB730842AB; Thu, 21 Mar 2019 11:35:01 +0000 (UTC) Received: from lacos-laptop-7.usersys.redhat.com (ovpn-120-143.rdu2.redhat.com [10.10.120.143]) by smtp.corp.redhat.com (Postfix) with ESMTP id 83BB35D9C4; Thu, 21 Mar 2019 11:34:59 +0000 (UTC) From: Laszlo Ersek To: berrange@redhat.com, eblake@redhat.com, f4bug@amsat.org, imammedo@redhat.com, kraxel@redhat.com, mprivozn@redhat.com, mst@redhat.com, peter.maydell@linaro.org, philmd@redhat.com, qemu-devel@nongnu.org Date: Thu, 21 Mar 2019 12:34:06 +0100 Message-Id: <20190321113408.19929-11-lersek@redhat.com> In-Reply-To: <20190321113408.19929-1-lersek@redhat.com> References: <20190321113408.19929-1-lersek@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.40]); Thu, 21 Mar 2019 11:35:01 +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 for-4.1 v3 10/12] tests: add missing dependency to build QTEST_QEMU_BINARY, round 2 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+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP In commit b94b330e2333 ("tests: add missing dependency to build QTEST_QEMU_BINARY", 2017-07-31), Phil fixed the dependency list of make target "check-qtest-%". Namely, the recipe would set QTEST_QEMU_BINARY to the softmmu emulator for the emulation target, but the prerequisites didn't include the emulator. The same issue affects the "check-report-qtest-%.tap" make target, which is the other make target whose recipe sets QTEST_QEMU_BINARY: > $ make -j4 check-report-qtest-aarch64.tap > TAP check-report-qtest-aarch64.tap > sh: /.../aarch64-softmmu/qemu-system-aarch64: No such file or directory Apply Phil's fix to this make target too. Signed-off-by: Laszlo Ersek Reviewed-by: Michal Privoznik Tested-by: Igor Mammedov Reviewed-by: Michael S. Tsirkin --- Notes: v3: - pick up Michal's R-b - pick up Igor's T-b - pick up Michael's R-b v2: - new patch, relied upon by the next patch tests/Makefile.include | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/Makefile.include b/tests/Makefile.include index 852f17b8c79c..0a0e1c340fe2 100644 --- a/tests/Makefile.include +++ b/tests/Makefile.include @@ -915,7 +915,7 @@ check-speed: $(check-speed-y) # gtester tests with TAP output -$(patsubst %, check-report-qtest-%.tap, $(QTEST_TARGETS)): check-report-qtest-%.tap: $(check-qtest-y) +$(patsubst %, check-report-qtest-%.tap, $(QTEST_TARGETS)): check-report-qtest-%.tap: subdir-%-softmmu $(check-qtest-y) $(call do_test_tap, $(check-qtest-$*-y) $(check-qtest-generic-y), \ QTEST_QEMU_BINARY=$*-softmmu/qemu-system-$* \ QTEST_QEMU_IMG=qemu-img$(EXESUF)) From patchwork Thu Mar 21 11:34:07 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Laszlo Ersek X-Patchwork-Id: 10863323 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 0CFE91515 for ; Thu, 21 Mar 2019 11:41:35 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id E3ED128A6D for ; Thu, 21 Mar 2019 11:41:34 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id D6F9128D19; Thu, 21 Mar 2019 11:41:34 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-0.4 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, SORTED_RECIPS autolearn=no version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 5C80E28A6D for ; Thu, 21 Mar 2019 11:41:34 +0000 (UTC) Received: from localhost ([127.0.0.1]:35290 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1h6w4j-0008DI-Gz for patchwork-qemu-devel@patchwork.kernel.org; Thu, 21 Mar 2019 07:41:33 -0400 Received: from eggs.gnu.org ([209.51.188.92]:55777) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1h6w0N-0004TT-B5 for qemu-devel@nongnu.org; Thu, 21 Mar 2019 07:37:04 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1h6vyX-0001iG-Ge for qemu-devel@nongnu.org; Thu, 21 Mar 2019 07:35:10 -0400 Received: from mx1.redhat.com ([209.132.183.28]:57328) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1h6vyT-0001dq-F2 for qemu-devel@nongnu.org; Thu, 21 Mar 2019 07:35:07 -0400 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 8B2EDC0495BB; Thu, 21 Mar 2019 11:35:04 +0000 (UTC) Received: from lacos-laptop-7.usersys.redhat.com (ovpn-120-143.rdu2.redhat.com [10.10.120.143]) by smtp.corp.redhat.com (Postfix) with ESMTP id 34BC45D9CC; Thu, 21 Mar 2019 11:35:02 +0000 (UTC) From: Laszlo Ersek To: berrange@redhat.com, eblake@redhat.com, f4bug@amsat.org, imammedo@redhat.com, kraxel@redhat.com, mprivozn@redhat.com, mst@redhat.com, peter.maydell@linaro.org, philmd@redhat.com, qemu-devel@nongnu.org Date: Thu, 21 Mar 2019 12:34:07 +0100 Message-Id: <20190321113408.19929-12-lersek@redhat.com> In-Reply-To: <20190321113408.19929-1-lersek@redhat.com> References: <20190321113408.19929-1-lersek@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.31]); Thu, 21 Mar 2019 11:35: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 for-4.1 v3 11/12] 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+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP Decompress and install the edk2 firmware blobs as part of "make install", unless blob installation was disabled with configure's "--disable-blobs" option. Additionally, decompress the blobs as a pre-requisite for building softmmu binaries -- this is helpful for both "make check" and other ad-hoc tests one might want to run in the build directory. Signed-off-by: Laszlo Ersek Reviewed-by: Michal Privoznik Reviewed-by: Philippe Mathieu-Daudé Reviewed-by: Michael S. Tsirkin --- Notes: v3: - pick up Michal's R-b - pick up Phil's R-b - pick up Michael's R-b - Decompress fd.bz2 files with bzip2 rather than fd.xz files with xz, so that decompression at "make install" time succeed on older build OSes too [Peter]. Note that "BUNZIP2" matches the name of the actual command "bunzip2" (i.e. it is sensible), and that it consists of 7 characters, satisfying the quiet-command limit. - do not pick up Phil's T-b, consequently - do not pick up Igor's T-b for the same reason v2: - adapt to tracking the edk2 flash device files in compressed form [Dan, Michael, Phil] - do not pick up Michal's and Michael's R-b's due to the above change configure | 1 + Makefile | 29 +++++++++++++++++++- .gitignore | 1 + 3 files changed, 30 insertions(+), 1 deletion(-) diff --git a/configure b/configure index c5032425e6d3..df6e01ada833 100755 --- a/configure +++ b/configure @@ -7865,6 +7865,7 @@ for bios_file in \ $source_path/pc-bios/*.img \ $source_path/pc-bios/openbios-* \ $source_path/pc-bios/u-boot.* \ + $source_path/pc-bios/edk2-*.fd.bz2 \ $source_path/pc-bios/palcode-* do LINKS="$LINKS pc-bios/$(basename $bios_file)" diff --git a/Makefile b/Makefile index d8dad39c5db1..f4562092e8dc 100644 --- a/Makefile +++ b/Makefile @@ -296,6 +296,10 @@ ui/input-keymap-%.c: $(KEYCODEMAP_GEN) $(KEYCODEMAP_CSV) $(SRC_PATH)/ui/Makefile $(KEYCODEMAP_GEN): .git-submodule-status $(KEYCODEMAP_CSV): .git-submodule-status +edk2-decompressed = $(basename $(wildcard pc-bios/edk2-*.fd.bz2)) +pc-bios/edk2-%.fd: pc-bios/edk2-%.fd.bz2 + $(call quiet-command,bzip2 -d -c $< > $@,"BUNZIP2",$<) + # Don't try to regenerate Makefile or configure # We don't generate any of them Makefile: ; @@ -444,6 +448,7 @@ $(SOFTMMU_SUBDIR_RULES): $(block-obj-y) $(SOFTMMU_SUBDIR_RULES): $(crypto-obj-y) $(SOFTMMU_SUBDIR_RULES): $(io-obj-y) $(SOFTMMU_SUBDIR_RULES): config-all-devices.mak +$(SOFTMMU_SUBDIR_RULES): $(edk2-decompressed) subdir-%: $(call quiet-command,$(MAKE) $(SUBDIR_MAKEFLAGS) -C $* V="$(V)" TARGET_DIR="$*/" all,) @@ -632,6 +637,7 @@ clean: ! -path ./roms/edk2/ArmPkg/Library/GccLto/liblto-arm.a \ ! -path ./roms/edk2/BaseTools/Source/Python/UPT/Dll/sqlite3.dll \ -exec rm {} + + rm -f $(edk2-decompressed) rm -f $(filter-out %.tlb,$(TOOLS)) $(HELPERS-y) qemu-ga TAGS cscope.* *.pod *~ */*~ rm -f fsdev/*.pod scsi/*.pod rm -f qemu-img-cmds.h @@ -722,9 +728,14 @@ spapr-rtas.bin slof.bin skiboot.lid \ palcode-clipper \ u-boot.e500 u-boot-sam460-20100605.bin \ qemu_vga.ndrv \ +edk2-licenses.txt \ hppa-firmware.img + +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 # Note that we manually filter-out the non-Sphinx documentation which @@ -785,7 +796,8 @@ endif ICON_SIZES=16x16 24x24 32x32 48x48 64x64 128x128 256x256 512x512 -install: all $(if $(BUILD_DOCS),install-doc) install-datadir install-localstatedir +install: all $(if $(BUILD_DOCS),install-doc) install-datadir install-localstatedir \ + $(if $(INSTALL_BLOBS),$(edk2-decompressed)) ifneq ($(TOOLS),) $(call install-prog,$(subst qemu-ga,qemu-ga$(EXESUF),$(TOOLS)),$(DESTDIR)$(bindir)) endif @@ -807,6 +819,21 @@ ifneq ($(BLOBS),) set -e; for x in $(BLOBS); do \ $(INSTALL_DATA) $(SRC_PATH)/pc-bios/$$x "$(DESTDIR)$(qemu_datadir)"; \ done +endif +ifdef INSTALL_BLOBS + set -e; for x in $(edk2-decompressed); do \ + $(INSTALL_DATA) $$x "$(DESTDIR)$(qemu_datadir)"; \ + done +endif +ifneq ($(DESCS),) + $(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"; \ diff --git a/.gitignore b/.gitignore index 8f782218044e..fd6e6c38c7b9 100644 --- a/.gitignore +++ b/.gitignore @@ -97,6 +97,7 @@ *.gcno *.gcov /pc-bios/bios-pq/status +/pc-bios/edk2-*.fd /pc-bios/vgabios-pq/status /pc-bios/optionrom/linuxboot.asm /pc-bios/optionrom/linuxboot.bin From patchwork Thu Mar 21 11:34:08 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Laszlo Ersek X-Patchwork-Id: 10863315 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 8295F17E0 for ; Thu, 21 Mar 2019 11:38:29 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 63E2E2A071 for ; Thu, 21 Mar 2019 11:38:29 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 56F002A0DD; Thu, 21 Mar 2019 11:38:29 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-0.4 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, SORTED_RECIPS autolearn=no version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id B4E572A06B for ; Thu, 21 Mar 2019 11:38:28 +0000 (UTC) Received: from localhost ([127.0.0.1]:35234 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1h6w1j-0005Zq-D6 for patchwork-qemu-devel@patchwork.kernel.org; Thu, 21 Mar 2019 07:38:27 -0400 Received: from eggs.gnu.org ([209.51.188.92]:55777) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1h6w0M-0004TT-Ch for qemu-devel@nongnu.org; Thu, 21 Mar 2019 07:37:03 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1h6vyZ-0001me-Br for qemu-devel@nongnu.org; Thu, 21 Mar 2019 07:35:12 -0400 Received: from mx1.redhat.com ([209.132.183.28]:39874) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1h6vyZ-0001kO-3V for qemu-devel@nongnu.org; Thu, 21 Mar 2019 07:35:11 -0400 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 5823F307E040; Thu, 21 Mar 2019 11:35:10 +0000 (UTC) Received: from lacos-laptop-7.usersys.redhat.com (ovpn-120-143.rdu2.redhat.com [10.10.120.143]) by smtp.corp.redhat.com (Postfix) with ESMTP id 0556A5D9C4; Thu, 21 Mar 2019 11:35:04 +0000 (UTC) From: Laszlo Ersek To: berrange@redhat.com, eblake@redhat.com, f4bug@amsat.org, imammedo@redhat.com, kraxel@redhat.com, mprivozn@redhat.com, mst@redhat.com, peter.maydell@linaro.org, philmd@redhat.com, qemu-devel@nongnu.org Date: Thu, 21 Mar 2019 12:34:08 +0100 Message-Id: <20190321113408.19929-13-lersek@redhat.com> In-Reply-To: <20190321113408.19929-1-lersek@redhat.com> References: <20190321113408.19929-1-lersek@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.42]); Thu, 21 Mar 2019 11:35:10 +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 for-4.1 v3 12/12] MAINTAINERS: add the "EDK2 Firmware" subsystem 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+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP We now have the edk2 submodule, somewhat elaborate build helpers for it, and even a UEFI application written against edk2 whose genuine home is the QEMU repository. Add the "EDK2 Firmware" subsystem such that all relevant pathnames be covered. Suggested-by: Daniel P. Berrangé Suggested-by: Michael S. Tsirkin Suggested-by: Philippe Mathieu-Daudé Signed-off-by: Laszlo Ersek Reviewed-by: Michal Privoznik Reviewed-by: Philippe Mathieu-Daudé Tested-by: Philippe Mathieu-Daudé Tested-by: Igor Mammedov Reviewed-by: Michael S. Tsirkin --- Notes: v3: - pick up Michal's R-b - pick up Phil's R-b/T-b - pick up Igor's T-b - pick up Michael's R-b v2: - new patch [Dan, Michael, Phil] - compared to the suggestions, upgrade the maintenance status ("S") from Maintained to Supported MAINTAINERS | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/MAINTAINERS b/MAINTAINERS index 85d7d764e526..f7504bb9cc51 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -2221,6 +2221,18 @@ F: include/hw/i2c/smbus_master.h F: include/hw/i2c/smbus_slave.h F: include/hw/i2c/smbus_eeprom.h +EDK2 Firmware +M: Laszlo Ersek +M: Philippe Mathieu-Daudé +S: Supported +F: pc-bios/descriptors/??-edk2-*.json +F: pc-bios/edk2-* +F: roms/Makefile.edk2 +F: roms/edk2 +F: roms/edk2-* +F: tests/data/uefi-boot-images/ +F: tests/uefi-test-tools/ + Usermode Emulation ------------------ Overall