Rather than sending out separate patches or subseries per topic, this is just a dump of the remaining patches I have in my queue. With this, I have a fully functioning Overdrive B1, bootable in ACPI+PSCI, DT+PSCI or DT+spintable mode. The ACPI parking protocol does not work for me at all, even without these patches.
Platforms/AMD/Styx/FdtDxe: retrieve spin-table addresses for private HOB
This is an alternative patch for the one Leo sent out to fix spin-table booting under DT. Rather than using the configuration table, this uses the HOB in FdtDxe, so we can get rid of the config table.
Platforms/AMD/Styx/CelloBoard.dsc: remove bogus 'if $(DO_PSCI)' Platforms/AMD/Styx/CelloBoard.dsc: remove references to XGBE
Just cleanups
Platforms/AMD/Styx: disable legacy SMBIOS entry point generation
Gets rid of the bogus 'failed to allocate below 4 GB' warnings in the DEBUG log
Platforms/AMD/Styx: separate trusted FW region from primary memory HOB
This fixes the issue where the first 14.5 MB are not covered by a memory reservation in the UEFI memory map.
Platforms/AMD/Styx: reduce fragmentation of runtime UEFI regions
Optimization
Platforms/AMD/Styx: build UEFI shell from source
Haven't been able to reproduce the issue that this causes for Ricardo, but it is unlikely to be caused by the change itself, but by the reshuffling of the modules in the firmware image
Platforms/AMD/AmdStyxHelperLib: remove AmdStyxGetArmProcessorTable () function
No longer used after the first patch above.
Platforms/AMD/Styx: move parking protocol handling to ACPI platform driver
Needed so we can disable/remove FdtDxe and still use the ACPI parking protocol
Platforms/AMD/Styx/AcpiPlatformDxe: use dynamically allocated pen
Needed to get rid of the fixed allocation, which could fail if some other driver happened to get an allocation there. Any future driver that does a bottom up allocation rather than topdown will get the region in question
Platforms/AMD/Styx: implement SPI flash runtime driver to back the varstore Platforms/AMD/Styx: reshuffle flash layout and add variable store region Platforms/AMD/Styx: reallocate the in-memory copy of the varstore FV Platforms/AMD/Styx: switch to the real variable runtime driver
Same patches as before. The only difference is that I kept the size of the firmware volume, and only stole the top 128 KB for the variable store.
Platforms/AMD/Styx/AcpiTables/AcpiTables.inf | 1 - Platforms/AMD/Styx/AcpiTables/Madt.c | 16 +- Platforms/AMD/Styx/AmdStyx.dec | 12 +- Platforms/AMD/Styx/CelloBoard/CelloBoard.dsc | 76 +-- Platforms/AMD/Styx/CelloBoard/CelloBoard.fdf | 20 +- Platforms/AMD/Styx/Common/AmdStyxAcpiLib.h | 2 +- Platforms/AMD/Styx/Common/AmdStyxHelperLib.h | 5 - Platforms/AMD/Styx/Common/Varstore.fdf.inc | 70 +++ Platforms/AMD/Styx/Drivers/AcpiPlatformDxe/AcpiPlatform.c | 19 +- Platforms/AMD/Styx/Drivers/AcpiPlatformDxe/AcpiPlatformDxe.inf | 14 +- Platforms/AMD/Styx/{OverdriveBoard/FdtDxe/AArch64/BdsLinuxLoader.c => Drivers/AcpiPlatformDxe/AcpiPlatformParkingProtocol.c} | 23 +- Platforms/AMD/Styx/Drivers/AcpiPlatformDxe/AcpiPlatformParkingProtocol.h | 19 + Platforms/AMD/Styx/{OverdriveBoard/FdtDxe/AArch64/BdsLinuxLoaderHelper.S => Drivers/AcpiPlatformDxe/AcpiPlatformParkingProtocolHelper.S} | 0 Platforms/AMD/Styx/Drivers/StyxSpiFvDxe/StyxSpiFvDxe.c | 503 ++++++++++++++++++++ Platforms/AMD/Styx/Drivers/StyxSpiFvDxe/StyxSpiFvDxe.inf | 63 +++ Platforms/AMD/Styx/Library/AmdStyxHelperLib/AmdStyxHelperLib.c | 18 - Platforms/AMD/Styx/Library/MemoryInitPei/MemoryInitPeiLib.c | 97 +++- Platforms/AMD/Styx/Library/MemoryInitPei/MemoryInitPeiLib.inf | 9 + Platforms/AMD/Styx/OverdriveBoard/FdtDxe/BdsLinuxFdt.c | 10 +- Platforms/AMD/Styx/OverdriveBoard/FdtDxe/FdtDxe.c | 5 - Platforms/AMD/Styx/OverdriveBoard/FdtDxe/FdtDxe.inf | 8 +- Platforms/AMD/Styx/OverdriveBoard/OverdriveBoard.dsc | 48 +- Platforms/AMD/Styx/OverdriveBoard/OverdriveBoard.fdf | 8 +- 23 files changed, 901 insertions(+), 145 deletions(-) create mode 100644 Platforms/AMD/Styx/Common/Varstore.fdf.inc rename Platforms/AMD/Styx/{OverdriveBoard/FdtDxe/AArch64/BdsLinuxLoader.c => Drivers/AcpiPlatformDxe/AcpiPlatformParkingProtocol.c} (83%) create mode 100644 Platforms/AMD/Styx/Drivers/AcpiPlatformDxe/AcpiPlatformParkingProtocol.h rename Platforms/AMD/Styx/{OverdriveBoard/FdtDxe/AArch64/BdsLinuxLoaderHelper.S => Drivers/AcpiPlatformDxe/AcpiPlatformParkingProtocolHelper.S} (100%) create mode 100644 Platforms/AMD/Styx/Drivers/StyxSpiFvDxe/StyxSpiFvDxe.c create mode 100644 Platforms/AMD/Styx/Drivers/StyxSpiFvDxe/StyxSpiFvDxe.inf