Attention is currently required from: Andrey Petrov, Appukuttan V K, Arthur Heymans, Bora Guvendik, Christian Walter, Felix Held, Fred Reitberger, Jason Glenesk, Johnny Lin, Jérémy Compostella, Matt DeVillier, Patrick Rudolph, Paul Menzel, Ronak Kanabar, Shuo Liu, Tim Chu, Wonkyu Kim.
Appukuttan V K has uploaded a new patch set (#31) to the change originally created by Jérémy Compostella. ( https://review.coreboot.org/c/coreboot/+/80277?usp=email )
The following approvals got outdated and were removed: Verified+1 by build bot (Jenkins)
Change subject: drivers/intel/fsp2_0: Support FSP 2.4 64-bits ......................................................................
drivers/intel/fsp2_0: Support FSP 2.4 64-bits
FSP 2.4 brings FSP 64-bits support which requires some adjustments in coreboot:
- Stack alignment:
1. FSP functions must be called with the stack 16-bytes aligned. This is already setup properly with the default value of the `mpreferred-stack-boundary' compiler option (4).
2. The FSP stack buffer supplied by coreboot through the `StackBase' UPD must be 16-bytes aligned.
- The EDK2 EFIAPI macro definition relies on compiler flags such as __GNUC__ which is not working well when included by coreboot. While it has no side-effect on i386 because the C calling convention used by coreboot and FSP are the same, it breaks on x86_64 because FSP/UEFI uses the Microsoft x64 calling convention while coreboot uses the System V AMD64 ABI.
Fortunately, EDK2 header allows to override the EFIAPI definition.
This appropriate attribute has to be set to all functions calling or called by the FSP.
- Add FSP 2 Multi Processor Platform Initialization module a function indirection to ensure that efi_ap_procedure functions are called with the appropriate C calling convention.
- Add fsp print helper macros to print `efi_return_status_t' with the appropriate format
- This commit adds a function indirection in MP PPI implementation to ensure FSP callbacks are invoked using the appropriate C calling convention.
BUG=b:329034258 TEST=verified on Lunar Lake RVP board (lnlrvp)
Change-Id: If0397f5cc8d0f4f1872bd37a001fe42e0c37ec99 Signed-off-by: Jeremy Compostella jeremy.compostella@intel.com --- M 3rdparty/vboot M src/drivers/intel/fsp2_0/fsp_debug_event.c M src/drivers/intel/fsp2_0/include/fsp/fsp_debug_event.h M src/drivers/intel/fsp2_0/include/fsp/info_header.h M src/drivers/intel/fsp2_0/include/fsp/soc_binding.h M src/drivers/intel/fsp2_0/include/fsp/util.h M src/drivers/intel/fsp2_0/memory_init.c M src/drivers/intel/fsp2_0/ppi/mp_service1.c M src/drivers/intel/fsp2_0/ppi/mp_service2.c M src/drivers/intel/fsp2_0/ppi/mp_service_ppi.c M src/include/efi/efi_datatype.h 11 files changed, 61 insertions(+), 35 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/77/80277/31