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. Changes in v2: - Include a common struct fsp_cfg_common in the struct fsp_config_data. - New patch to introduce CONFIG_FSP_USE_UPD Kconfig option - split this patch from v1 patch#7 Bin Meng (9): 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: Introduce CONFIG_FSP_USE_UPD Kconfig option x86: queensbay: Remove invalid comments in update_fsp_configs() x86: fsp: Move struct fspinit_rtbuf definition to chipset header x86: fsp: Set up init runtime buffer in update_fsp_configs() arch/x86/Kconfig | 9 ++++ arch/x86/cpu/baytrail/fsp_configs.c | 11 +++- arch/x86/cpu/queensbay/fsp_configs.c | 14 +++--- .../include/asm/arch-baytrail/fsp/fsp_configs.h | 19 +++++++ .../include/asm/arch-queensbay/fsp/fsp_configs.h | 19 +++++++ arch/x86/include/asm/fsp/fsp_api.h | 12 ++++- 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 | 58 ++++++++-------------- 9 files changed, 102 insertions(+), 75 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