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

Reply via email to