All FSP spec v1.0 complaint FSP binary uses struct fspinit_rtbuf as defined by the 1.0 spec, however there are FSPs that do not follow 1.0 spec, like Intel FSP for 3rd generation Intel Core and Intel Celeron processors with mobile Intel HM76 and QM77 chipsets platform (formerly Chief River Platform: Ivy Bridge and Panther Point). Although Intel website says this FSP conforms to FSP v1.0 specification which defines the UPD usage, it is not really the case. This might possible due to that FSP predates the 1.0 spec. Also future FSP binary that is complaint to v1.1 spec defines an optional paltform-specific runtime data in the struct fspinit_rtbuf.
Besides this fspinit_rtbuf, the IvyBridge FSP does not support UPD either, so that current codes in arch/x86/lib/fsp/fsp_support.c won't work for that FSP. We need some flexibility, hence move those platform-specific config to chipset directory. Right now we still use hardcoded 'const struct' table (in flash) to pass the Azalia (Intel HD Audio) verb table to FSP, because different FSP may use different verb table format (at least for Queensbay and BayTrail), we cannot handle this in the common FSP support codes. But with this series, we are now able to get Azalia verb table from device tree, just like what we did for overriding UPD data configuration. This can be done in future patch set. Bin Meng (8): x86: fsp: Simplify fsp_continue() x86: fsp: Avoid cast stack_top in struct shared_data x86: fsp: Add boot_mode as a member of struct shared_data x86: fsp: Rename shared_data to fsp_config_data x86: fsp: Rename update_fsp_upd() and change its signature x86: fsp: Move struct fspinit_rtbuf definition to chipset header x86: fsp: Move VPD/UPD verification to update_fsp_configs() x86: queensbay: Remove invalid comments in update_fsp_upd() arch/x86/cpu/baytrail/fsp_configs.c | 27 ++++++++- arch/x86/cpu/queensbay/fsp_configs.c | 30 ++++++++-- .../include/asm/arch-baytrail/fsp/fsp_configs.h | 21 +++++++ .../include/asm/arch-queensbay/fsp/fsp_configs.h | 21 +++++++ arch/x86/include/asm/fsp/fsp_api.h | 2 +- arch/x86/include/asm/fsp/fsp_platform.h | 15 ----- arch/x86/include/asm/fsp/fsp_support.h | 20 +++---- arch/x86/lib/fsp/fsp_support.c | 64 +++++----------------- 8 files changed, 112 insertions(+), 88 deletions(-) create mode 100644 arch/x86/include/asm/arch-baytrail/fsp/fsp_configs.h create mode 100644 arch/x86/include/asm/arch-queensbay/fsp/fsp_configs.h delete mode 100644 arch/x86/include/asm/fsp/fsp_platform.h -- 1.8.2.1 _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot