-
Notifications
You must be signed in to change notification settings - Fork 137
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ACPI RSDT not zero #25
Comments
Yeah, I've seen that error for some time. It looks to me like an edk2 bug, because, as far as I can tell, that table is generated automatically and we have little/no control about it in our platform files. I'm willing to bet that we're far from the only ARM platform producing this error, and I've kind of been waiting for some other ARM platforms to be bothered enough with this to send a global edk2 fix... 😉 |
I think you simply need to set gEfiMdeModulePkgTokenSpaceGuid.PcdAcpiExposedTableVersions to 0x20. This is what the other Arm platforms (Juno, FVP, Socionext DeveloperBox, etc..) did/ The default value of PcdAcpiExposedTableVersions is 0x3E, which sets multiple ACPI revisions supported, including EFI_ACPI_TABLE_VERSION_1_0B (bit 1) The code in AcpiTableDxe populates the RSDT pointer only if PcdAcpiExposedTableVersions has the EFI_ACPI_TABLE_VERSION_1_0B bit set. Look for example at PublishTables ( ) and similar code. This is per ACPI spec section 5.2.7, which defines RSDT to be for compatability with ACPI 1.0 OSes. |
Confirmed this fixes the issue. I will send a patch |
That's good to know (and I will test that too), but I would argue that, if the EDK2 code for ARM sets a default PCD value that produces an ACPI error, then EDK2 should be fixed, because I think one is entitled to expect that the default PCD values should not generate an ACPI error. In other words, the default value for |
It's currently defined at https://github.com/tianocore/edk2/blob/01ce872739d2f0cd3a8917be2180381db5f0391e/MdeModulePkg/MdeModulePkg.dec#L1415 I think we probably want to have a |
OK adding this in MdeModulePkg.dec does take care of the issue, and seems to keep the old value for non-Arm systems
However, I think we should probably do this only for Aarch64 and leave Arm alone. The SBBR requirement only applies to Aarch64. So it should be:
Thoughts? |
Sounds good to me. The people reviewing the patch on edk2-devel will most likely let us know if they think this should apply to more than AARCH64 anyway. |
Set the default value of PcdAcpiExposedTableVersions for Aarch64 platforms to 0x20. Previously, the default was set to 0x3E for all platforms. The new value removes ACPI 1.0b compatability, which forces the use of XSDT 64-bit pointer, as required by Arm SBBR specification. This also resolves an error reported by acpiview command, as seen on the RPi (see pftf/RPi4#25). Cc: Dandan Bi <dandan.bi@intel.com> Cc: Liming Gao <liming.gao@intel.com> Cc: Hao A Wu <hao.a.wu@intel.com> Cc: Leif Lindholm <leif@nuviainc.com> Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org> Signed-off-by: Samer El-Haj-Mahmoud <samer@elhajmahmoud.com>
Set the default value of PcdAcpiExposedTableVersions for Aarch64 platforms to 0x20. Previously, the default was set to 0x3E for all platforms. The new value removes ACPI 1.0b compatability, which forces the use of XSDT 64-bit pointer, as required by Arm SBBR specification. This also resolves an error reported by acpiview command, as seen on the RPi (see pftf/RPi4#25). Cc: Dandan Bi <dandan.bi@intel.com> Cc: Liming Gao <liming.gao@intel.com> Cc: Jian J Wang <jian.j.wang@intel.com> Cc: Hao A Wu <hao.a.wu@intel.com> Cc: Leif Lindholm <leif@nuviainc.com> Cc: Ard Biesheuvel <ard.biesheuvel@arm.com> Signed-off-by: Samer El-Haj-Mahmoud <samer@elhajmahmoud.com> Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Reviewed-by: Dandan Bi <dandan.bi@intel.com>
Set the default value of PcdAcpiExposedTableVersions for Aarch64 platforms to 0x20. Previously, the default was set to 0x3E for all platforms. The new value removes ACPI 1.0b compatability, which forces the use of XSDT 64-bit pointer, as required by Arm SBBR specification. This also resolves an error reported by acpiview command, as seen on the RPi (see pftf/RPi4#25). Signed-off-by: Samer El-Haj-Mahmoud <samer@elhajmahmoud.com> Reviewed-by: Ard Biesheuvel <ard.biesheuvel@arm.com> Reviewed-by: Dandan Bi <dandan.bi@intel.com> Reviewed-by: Sami Mujawar <sami.mujawar@arm.com> Acked-by: Hao A Wu <hao.a.wu@intel.com>
Set the default value of PcdAcpiExposedTableVersions for Aarch64 platforms to 0x20. Previously, the default was set to 0x3E for all platforms. The new value removes ACPI 1.0b compatability, which forces the use of XSDT 64-bit pointer, as required by Arm SBBR specification. This also resolves an error reported by acpiview command, as seen on the RPi (see pftf/RPi4#25). Signed-off-by: Samer El-Haj-Mahmoud <samer@elhajmahmoud.com> Reviewed-by: Ard Biesheuvel <ard.biesheuvel@arm.com> Reviewed-by: Dandan Bi <dandan.bi@intel.com> Reviewed-by: Sami Mujawar <sami.mujawar@arm.com> Acked-by: Hao A Wu <hao.a.wu@intel.com>
Probably fixed even earlier, my bad. |
Acpiview shows an error indicating RSDT Address needs to be NULL on ARM platforms.
This is consistent with SBBR 1.2 rule (section 4.2.1.1)
The text was updated successfully, but these errors were encountered: