drivers/intel/fsp2_0: Fix running on x86_64
Add new Kconfig symbols to mark FSP binary as x86_32. Fix the FSP headers and replace void pointers by fixed sized integers depending on the used mode to compile the FSP. This issue has been reported here: https://github.com/intel/FSP/issues/59 This is necessary to run on x86_64, as pointers have different size. Add preprocessor error to warn that x86_64 FSP isn't supported by the current code. Tested on Intel Skylake. FSP-M no longer returns the error "Invalid Parameter". Change-Id: I6015005c4ee3fc2f361985cf8cff896bcefd04fb Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/48174 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Angel Pons <th3fanbus@gmail.com>
This commit is contained in:
committed by
Patrick Georgi
parent
37cae54034
commit
31218a4259
@@ -84,7 +84,7 @@ void platform_fsp_memory_init_params_cb(FSPM_UPD *fspm_upd, uint32_t version)
|
||||
/* Update the architectural UPD values. */
|
||||
aupd = &fspm_upd->FspmArchUpd;
|
||||
aupd->BootLoaderTolumSize = cbmem_overhead_size();
|
||||
aupd->StackBase = (void *)(CONFIG_FSP_ESRAM_LOC - aupd->StackSize);
|
||||
aupd->StackBase = (uintptr_t)(CONFIG_FSP_ESRAM_LOC - aupd->StackSize);
|
||||
aupd->BootMode = FSP_BOOT_WITH_FULL_CONFIGURATION;
|
||||
|
||||
/* Display the ESRAM layout */
|
||||
@@ -97,8 +97,8 @@ void platform_fsp_memory_init_params_cb(FSPM_UPD *fspm_upd, uint32_t version)
|
||||
"+-------------------+ 0x%08x (CONFIG_FSP_ESRAM_LOC)\n",
|
||||
CONFIG_FSP_ESRAM_LOC);
|
||||
printk(BIOS_SPEW, "| FSP stack |\n");
|
||||
printk(BIOS_SPEW, "+-------------------+ %p\n",
|
||||
aupd->StackBase);
|
||||
printk(BIOS_SPEW, "+-------------------+ 0x%zx\n",
|
||||
(size_t)aupd->StackBase);
|
||||
printk(BIOS_SPEW, "| |\n");
|
||||
printk(BIOS_SPEW, "+-------------------+ %p\n",
|
||||
_car_unallocated_start);
|
||||
|
Reference in New Issue
Block a user