From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wr0-x22a.google.com (mail-wr0-x22a.google.com [IPv6:2a00:1450:400c:c0c::22a]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 06074802B6 for ; Thu, 9 Mar 2017 08:33:59 -0800 (PST) Received: by mail-wr0-x22a.google.com with SMTP id l37so48729684wrc.1 for ; Thu, 09 Mar 2017 08:33:58 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=xfZAAvh15Zp41ijXOMisFfUjl50zp96LyW7RjurwNlY=; b=bjPQRgB9ybNyRGcuZy1o+PqAqfp+69fjU+9pQIVTCn0hHhJMLj5tR+kdAljYguGFyN /pUOCQ1EAumWVU7aI4DMjbKHMq6ZMkVIyxd6q5/vYOcy1vhaSL65XqYRhiZs/fpjVq16 0+wcYoq19JnmR6+JHz5emFUZmwbFNse7CAbos= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to:user-agent; bh=xfZAAvh15Zp41ijXOMisFfUjl50zp96LyW7RjurwNlY=; b=LcMR6Fs9HykCighuoQJVJKzgS9tK5hgHYuXE9HvBBfQoaES7WL4dIORKuBKUvL1oUM 92YYM/bPbT9OU/oold0lvezZcl+/Ob+iTpLlk8jBnxagc7BfMvWr8XXLDlDqEJS0LJLC QPCEPcqvKfpDUtWcaAI52iz+TNOEdWPZyyeygOSkgKCkIXgC8dtwzwCfO5xK0nCwTnea 00XbuoYrT+RSBQpC6aYllZ3+vF06Tg3fetkdN27zoxJecZ8YJM/biGgIEIscGUucfNsV fAbKaMERRzlmfdn1187g1ee2OlJybe3WG+fKD1uNSFIDUU6enKfdsvk9CL6raua/Pqzc aWJQ== X-Gm-Message-State: AMke39moEG6OOD+9s4DYbNYZhXbsS0/lCqfron3Mwigw1cxGUYA0XTr8/VK3Thc2rniOji98 X-Received: by 10.223.151.138 with SMTP id s10mr12656312wrb.35.1489077237589; Thu, 09 Mar 2017 08:33:57 -0800 (PST) Received: from bivouac.eciton.net (bivouac.eciton.net. [2a00:1098:0:86:1000:23:0:2]) by smtp.gmail.com with ESMTPSA id y43sm8861302wrd.0.2017.03.09.08.33.56 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 09 Mar 2017 08:33:57 -0800 (PST) Date: Thu, 9 Mar 2017 16:33:55 +0000 From: Leif Lindholm To: Ard Biesheuvel Cc: edk2-devel@lists.01.org, lersek@redhat.com, drjones@redhat.com Message-ID: <20170309163355.GH16034@bivouac.eciton.net> References: <1489075441-23745-1-git-send-email-ard.biesheuvel@linaro.org> <1489075441-23745-4-git-send-email-ard.biesheuvel@linaro.org> MIME-Version: 1.0 In-Reply-To: <1489075441-23745-4-git-send-email-ard.biesheuvel@linaro.org> User-Agent: Mutt/1.5.23 (2014-03-12) Subject: Re: [PATCH 3/3] ArmVirtPkg/FdtClientDxe: make DT table installation !ACPI dependent X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Mar 2017 16:33:59 -0000 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline On Thu, Mar 09, 2017 at 05:04:01PM +0100, Ard Biesheuvel wrote: > Instead of having a build time switch to prevent the FDT configuration > table from being installed, make this behavior dependent on whether we > are passing ACPI tables to the OS. This is done by looking for the > ACPI 2.0 configuration table, and only installing the FDT one if the > ACPI one cannot be found. > > Contributed-under: TianoCore Contribution Agreement 1.0 > Signed-off-by: Ard Biesheuvel Reviewed-by: Leif Lindholm > --- > ArmVirtPkg/ArmVirtPkg.dec | 10 ---------- > ArmVirtPkg/ArmVirtQemu.dsc | 5 ----- > ArmVirtPkg/FdtClientDxe/FdtClientDxe.c | 15 ++++++++++----- > ArmVirtPkg/FdtClientDxe/FdtClientDxe.inf | 5 ++--- > 4 files changed, 12 insertions(+), 23 deletions(-) > > diff --git a/ArmVirtPkg/ArmVirtPkg.dec b/ArmVirtPkg/ArmVirtPkg.dec > index a5ec42166445..efe83a383d55 100644 > --- a/ArmVirtPkg/ArmVirtPkg.dec > +++ b/ArmVirtPkg/ArmVirtPkg.dec > @@ -58,13 +58,3 @@ [PcdsFixedAtBuild, PcdsPatchableInModule] > # EFI_VT_100_GUID. > # > gArmVirtTokenSpaceGuid.PcdTerminalTypeGuidBuffer|{0x65, 0x60, 0xA6, 0xDF, 0x19, 0xB4, 0xD3, 0x11, 0x9A, 0x2D, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0x4D}|VOID*|0x00000007 > - > -[PcdsFeatureFlag] > - # > - # Pure ACPI boot > - # > - # Inhibit installation of the FDT as a configuration table if this feature > - # PCD is TRUE. Otherwise, the OS is presented with both a DT and an ACPI > - # description of the platform, and it is up to the OS to choose. > - # > - gArmVirtTokenSpaceGuid.PcdPureAcpiBoot|FALSE|BOOLEAN|0x0000000a > diff --git a/ArmVirtPkg/ArmVirtQemu.dsc b/ArmVirtPkg/ArmVirtQemu.dsc > index 477dfdcfc764..7b266b98b949 100644 > --- a/ArmVirtPkg/ArmVirtQemu.dsc > +++ b/ArmVirtPkg/ArmVirtQemu.dsc > @@ -34,7 +34,6 @@ [Defines] > # -D FLAG=VALUE > # > DEFINE SECURE_BOOT_ENABLE = FALSE > - DEFINE PURE_ACPI_BOOT_ENABLE = FALSE > > !include ArmVirtPkg/ArmVirt.dsc.inc > > @@ -94,10 +93,6 @@ [PcdsFeatureFlag.common] > gEfiMdeModulePkgTokenSpaceGuid.PcdConOutGopSupport|TRUE > gEfiMdeModulePkgTokenSpaceGuid.PcdConOutUgaSupport|FALSE > > -!if $(PURE_ACPI_BOOT_ENABLE) == TRUE > - gArmVirtTokenSpaceGuid.PcdPureAcpiBoot|TRUE > -!endif > - > [PcdsFixedAtBuild.common] > gArmPlatformTokenSpaceGuid.PcdCoreCount|1 > !if $(ARCH) == AARCH64 > diff --git a/ArmVirtPkg/FdtClientDxe/FdtClientDxe.c b/ArmVirtPkg/FdtClientDxe/FdtClientDxe.c > index 0327af5739f2..2981977f3d20 100644 > --- a/ArmVirtPkg/FdtClientDxe/FdtClientDxe.c > +++ b/ArmVirtPkg/FdtClientDxe/FdtClientDxe.c > @@ -17,6 +17,7 @@ > #include > #include > #include > +#include > #include > #include > > @@ -312,12 +313,16 @@ OnReadyToBoot ( > ) > { > EFI_STATUS Status; > + VOID *Table; > > - if (!FeaturePcdGet (PcdPureAcpiBoot)) { > - // > - // Only install the FDT as a configuration table if we want to leave it up > - // to the OS to decide whether it prefers ACPI over DT. > - // > + // > + // Only install the FDT as a configuration table if we are not exposing > + // ACPI 2.0 (or later) tables. Note that the legacy ACPI table GUID has > + // no meaning on ARM since we need at least ACPI 5.0 support, and the > + // 64-bit ACPI 2.0 table GUID is mandatory in that case. > + // > + Status = EfiGetSystemConfigurationTable (&gEfiAcpi20TableGuid, &Table); > + if (EFI_ERROR (Status) || Table == NULL) { > Status = gBS->InstallConfigurationTable (&gFdtTableGuid, mDeviceTreeBase); > ASSERT_EFI_ERROR (Status); > } > diff --git a/ArmVirtPkg/FdtClientDxe/FdtClientDxe.inf b/ArmVirtPkg/FdtClientDxe/FdtClientDxe.inf > index 00017727c32c..9861f41e968b 100644 > --- a/ArmVirtPkg/FdtClientDxe/FdtClientDxe.inf > +++ b/ArmVirtPkg/FdtClientDxe/FdtClientDxe.inf > @@ -37,17 +37,16 @@ [LibraryClasses] > HobLib > UefiBootServicesTableLib > UefiDriverEntryPoint > + UefiLib > > [Protocols] > gFdtClientProtocolGuid ## PRODUCES > > [Guids] > + gEfiAcpi20TableGuid > gEfiEventReadyToBootGuid > gFdtHobGuid > gFdtTableGuid > > -[FeaturePcd] > - gArmVirtTokenSpaceGuid.PcdPureAcpiBoot > - > [Depex] > TRUE > -- > 2.7.4 >