On 03/31/2016 04:28 AM, Ard Biesheuvel wrote:
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
Just as an FYI: the FACS is mostly useless on ARM anyway. The vast majority of the fields are expected to be zero because most of them do not apply to the ACPI hardware reduced mode, which is the default mode for ARM. Per the spec (sec 5.2.10) this table is optional in those circumstances. I do not recommend using it; I'm pretty sure it could even be removed from all ARM UEFI implementations without harm.