On 8 April 2016 at 14:52, G Gregory graeme.gregory@linaro.org wrote:
On 8 April 2016 at 12:26, Ard Biesheuvel ard.biesheuvel@linaro.org wrote:
Ping?
For what its worth
Reviewed-by: Graeme Gregory graeme.gregory@linaro.org
Unless Leif (or anyone else, for that matter) objects, I am going to merge this.
Thanks,
On 1 April 2016 at 17:58, Al Stone al.stone@linaro.org wrote:
On 04/01/2016 04:34 AM, G Gregory wrote:
On 1 April 2016 at 11:14, Ard Biesheuvel ard.biesheuvel@linaro.org wrote:
(+ Al)
On 1 April 2016 at 12:14, Evan Lloyd Evan.Lloyd@arm.com wrote:
Hi Ard. The FACS does expose the "GlobalLock" field. I'm not aware of anything that uses it right now, but it might conceivably break somebody's board driver.
GlobalLock is not available in Hardware Reduced Mode.
See ACPI 6.1 section 4.1 Hardware-Reduced ACPI (and equivalent in previous editions).
Graeme
Yup, what Graeme says.
It's even being phased out on other architectures. It's one global lock for the entire ACPI subsystem -- it should never be used by anyone.
Evan
> -----Original Message----- > From: Ard Biesheuvel [mailto:ard.biesheuvel@linaro.org] > Sent: 31 March 2016 11:29 > To: linaro-uefi@lists.linaro.org; leif.lindholm@linaro.org > Cc: ryan.harkin@linaro.org; graeme.gregory@linaro.org; Evan Lloyd; Ard > Biesheuvel > Subject: [PATCH] Platforms/Juno: drop FACS table > > The FACS table does not expose anything meaningful on AArch64, and since the > Tianocore ACPI table handling code insists on locating FACS below 4 GB, which > may fail since since AArch64 platforms may not have any system RAM below 4 > GB to begin with. > > The reason for this behavior is to ensure that a 32-bit PEI can access the FACS > table on an otherwise 64-bit system, but this is a concern that does not apply to > AArch64, since PEI always runs in 64-bit mode in that case. The PI spec currently > does not provide any means for PEI to convey its bitness or how much system > RAM it can access, so a permanent fix requires a spec update first. > > So simply remove the FACS table until the PIWG clarifies the spec in this regard. > > Contributed-under: TianoCore Contribution Agreement 1.0 > Signed-off-by: Ard Biesheuvel ard.biesheuvel@linaro.org > --- > Platforms/ARM/Juno/AcpiTables/AcpiTables.inf | 1 - > Platforms/ARM/Juno/AcpiTables/Facs.aslc | 62 ---------------------------- > 2 files changed, 63 deletions(-) > delete mode 100644 Platforms/ARM/Juno/AcpiTables/Facs.aslc > > diff --git a/Platforms/ARM/Juno/AcpiTables/AcpiTables.inf > b/Platforms/ARM/Juno/AcpiTables/AcpiTables.inf > index 3159d7d37c4a..039cff0a743a 100644 > --- a/Platforms/ARM/Juno/AcpiTables/AcpiTables.inf > +++ b/Platforms/ARM/Juno/AcpiTables/AcpiTables.inf > @@ -25,7 +25,6 @@ > Dsdt.asl > Dbg2.asl > Spcr.asl > - Facs.aslc > Fadt.aslc > Gtdt.aslc > Madt.aslc > diff --git a/Platforms/ARM/Juno/AcpiTables/Facs.aslc > b/Platforms/ARM/Juno/AcpiTables/Facs.aslc > deleted file mode 100644 > index 137ead77c199..000000000000 > --- a/Platforms/ARM/Juno/AcpiTables/Facs.aslc > +++ /dev/null > @@ -1,62 +0,0 @@ > -/** @file > -* Firmware ACPI Control Structure (FACS) > -* > -* Copyright (c) 2012 - 2014, ARM Limited. All rights reserved. > -* > -* This program and the accompanying materials > -* are licensed and made available under the terms and conditions of the BSD > License > -* which accompanies this distribution. The full text of the license may be > found at > -* http://opensource.org/licenses/bsd-license.php > -* > -* THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" > BASIS, > -* WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER > EXPRESS OR IMPLIED. > -* > -**/ > - > -#include <IndustryStandard/Acpi.h> > - > -EFI_ACPI_5_0_FIRMWARE_ACPI_CONTROL_STRUCTURE Facs = { > - EFI_ACPI_5_0_FIRMWARE_ACPI_CONTROL_STRUCTURE_SIGNATURE, // > UINT32 Signature > - sizeof (EFI_ACPI_5_0_FIRMWARE_ACPI_CONTROL_STRUCTURE), // UINT32 > Length > - 0xA152, // UINT32 HardwareSignature > - 0, // UINT32 FirmwareWakingVector > - 0, // UINT32 GlobalLock > - 0, // UINT32 Flags > - 0, // UINT64 XFirmwareWakingVector > - EFI_ACPI_5_0_FIRMWARE_ACPI_CONTROL_STRUCTURE_VERSION, // UINT8 > Version; > - { EFI_ACPI_RESERVED_BYTE, // UINT8 Reserved0[0] > - EFI_ACPI_RESERVED_BYTE, // UINT8 Reserved0[1] > - EFI_ACPI_RESERVED_BYTE }, // UINT8 Reserved0[2] > - 0, // UINT32 OspmFlags "Platform firmware > must > - // initialize this field to zero." > - { EFI_ACPI_RESERVED_BYTE, // UINT8 Reserved1[0] > - EFI_ACPI_RESERVED_BYTE, // UINT8 Reserved1[1] > - EFI_ACPI_RESERVED_BYTE, // UINT8 Reserved1[2] > - EFI_ACPI_RESERVED_BYTE, // UINT8 Reserved1[3] > - EFI_ACPI_RESERVED_BYTE, // UINT8 Reserved1[4] > - EFI_ACPI_RESERVED_BYTE, // UINT8 Reserved1[5] > - EFI_ACPI_RESERVED_BYTE, // UINT8 Reserved1[6] > - EFI_ACPI_RESERVED_BYTE, // UINT8 Reserved1[7] > - EFI_ACPI_RESERVED_BYTE, // UINT8 Reserved1[8] > - EFI_ACPI_RESERVED_BYTE, // UINT8 Reserved1[9] > - EFI_ACPI_RESERVED_BYTE, // UINT8 Reserved1[10] > - EFI_ACPI_RESERVED_BYTE, // UINT8 Reserved1[11] > - EFI_ACPI_RESERVED_BYTE, // UINT8 Reserved1[12] > - EFI_ACPI_RESERVED_BYTE, // UINT8 Reserved1[13] > - EFI_ACPI_RESERVED_BYTE, // UINT8 Reserved1[14] > - EFI_ACPI_RESERVED_BYTE, // UINT8 Reserved1[15] > - EFI_ACPI_RESERVED_BYTE, // UINT8 Reserved1[16] > - EFI_ACPI_RESERVED_BYTE, // UINT8 Reserved1[17] > - EFI_ACPI_RESERVED_BYTE, // UINT8 Reserved1[18] > - EFI_ACPI_RESERVED_BYTE, // UINT8 Reserved1[19] > - EFI_ACPI_RESERVED_BYTE, // UINT8 Reserved1[20] > - EFI_ACPI_RESERVED_BYTE, // UINT8 Reserved1[21] > - EFI_ACPI_RESERVED_BYTE, // UINT8 Reserved1[22] > - EFI_ACPI_RESERVED_BYTE }, // UINT8 Reserved1[23] > -}; > - > -// > -// Reference the table being generated to prevent the optimizer from removing > the -// data structure from the executable -// > -VOID* CONST ReferenceAcpiTable = &Facs; > -- > 2.5.0
IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.
-- ciao, al
Al Stone Software Engineer Linaro Enterprise Group al.stone@linaro.org