From 83311886151f80ef24d30f850baece07d08863cb Mon Sep 17 00:00:00 2001 From: Simon Glass Date: Wed, 25 Sep 2019 08:00:11 -0600 Subject: [PATCH] x86: Rename existing FSP code to fsp1 Since there is now a new version of the FSP and it is incompatible with the existing version, move the code into an fsp1 directory. This will allow us to put FSP v2 code into an fsp2 directory. Add a Kconfig which defines which version is in use. Some of the code in this new fsp1/ directory is generic across both FSPv1 and FSPv2. Future patches will address this. Signed-off-by: Simon Glass Reviewed-by: Bin Meng Tested-by: Bin Meng --- arch/x86/Kconfig | 25 +++++++++++++++++++++- arch/x86/cpu/baytrail/acpi.c | 2 +- arch/x86/cpu/baytrail/fsp_configs.c | 2 +- arch/x86/cpu/braswell/fsp_configs.c | 2 +- arch/x86/cpu/ivybridge/fsp_configs.c | 2 +- arch/x86/cpu/queensbay/fsp_configs.c | 2 +- arch/x86/cpu/queensbay/tnc.c | 2 +- arch/x86/include/asm/{fsp => fsp1}/fsp_api.h | 0 arch/x86/include/asm/{fsp => fsp1}/fsp_azalia.h | 0 arch/x86/include/asm/{fsp => fsp1}/fsp_bootmode.h | 0 arch/x86/include/asm/{fsp => fsp1}/fsp_ffs.h | 0 arch/x86/include/asm/{fsp => fsp1}/fsp_fv.h | 0 arch/x86/include/asm/{fsp => fsp1}/fsp_hob.h | 0 .../x86/include/asm/{fsp => fsp1}/fsp_infoheader.h | 0 arch/x86/include/asm/{fsp => fsp1}/fsp_support.h | 0 arch/x86/include/asm/{fsp => fsp1}/fsp_types.h | 0 arch/x86/include/asm/u-boot-x86.h | 2 +- arch/x86/lib/Makefile | 3 ++- arch/x86/lib/{fsp => fsp1}/Makefile | 0 arch/x86/lib/{fsp => fsp1}/fsp_car.S | 0 arch/x86/lib/{fsp => fsp1}/fsp_common.c | 2 +- arch/x86/lib/{fsp => fsp1}/fsp_dram.c | 2 +- arch/x86/lib/{fsp => fsp1}/fsp_graphics.c | 2 +- arch/x86/lib/{fsp => fsp1}/fsp_support.c | 2 +- .../som-db5800-som-6867/som-db5800-som-6867.c | 2 +- board/intel/cherryhill/cherryhill.c | 2 +- cmd/x86/fsp.c | 2 +- drivers/pci/pci-uclass.c | 2 +- 28 files changed, 41 insertions(+), 17 deletions(-) rename arch/x86/include/asm/{fsp => fsp1}/fsp_api.h (100%) rename arch/x86/include/asm/{fsp => fsp1}/fsp_azalia.h (100%) rename arch/x86/include/asm/{fsp => fsp1}/fsp_bootmode.h (100%) rename arch/x86/include/asm/{fsp => fsp1}/fsp_ffs.h (100%) rename arch/x86/include/asm/{fsp => fsp1}/fsp_fv.h (100%) rename arch/x86/include/asm/{fsp => fsp1}/fsp_hob.h (100%) rename arch/x86/include/asm/{fsp => fsp1}/fsp_infoheader.h (100%) rename arch/x86/include/asm/{fsp => fsp1}/fsp_support.h (100%) rename arch/x86/include/asm/{fsp => fsp1}/fsp_types.h (100%) rename arch/x86/lib/{fsp => fsp1}/Makefile (100%) rename arch/x86/lib/{fsp => fsp1}/fsp_car.S (100%) rename arch/x86/lib/{fsp => fsp1}/fsp_common.c (99%) rename arch/x86/lib/{fsp => fsp1}/fsp_dram.c (98%) rename arch/x86/lib/{fsp => fsp1}/fsp_graphics.c (98%) rename arch/x86/lib/{fsp => fsp1}/fsp_support.c (99%) diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig index 218e817..314f8de 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig @@ -364,6 +364,29 @@ config HAVE_FSP Note: Without this binary U-Boot will not be able to set up its SDRAM so will not boot. +choice + prompt "FSP version" + depends on HAVE_FSP + default FSP_VERSION1 + help + Selects the FSP version to use. Intel has published several versions + of the FSP External Architecture Specification and this allows + selection of the version number used by a particular SoC. + +config FSP_VERSION1 + bool "FSP version 1.x" + help + This covers versions 1.0 and 1.1a. See here for details: + https://github.com/IntelFsp/fsp/wiki + +config FSP_VERSION2 + bool "FSP version 2.x" + help + This covers versions 2.0 and 2.1. See here for details: + https://github.com/IntelFsp/fsp/wiki + +endchoice + config FSP_FILE string "Firmware Support Package binary filename" depends on HAVE_FSP @@ -429,7 +452,7 @@ config ENABLE_MRC_CACHE For platforms that use Intel FSP for the memory initialization, please check FSP output HOB via U-Boot command 'fsp hob' to see - if there is FSP_NON_VOLATILE_STORAGE_HOB_GUID (asm/fsp/fsp_hob.h). + if there is FSP_NON_VOLATILE_STORAGE_HOB_GUID (asm/fsp1/fsp_hob.h). If such GUID does not exist, MRC cache is not available on such platform (eg: Intel Queensbay), which means selecting this option here does not make any difference. diff --git a/arch/x86/cpu/baytrail/acpi.c b/arch/x86/cpu/baytrail/acpi.c index 445e4ba..1e3829a 100644 --- a/arch/x86/cpu/baytrail/acpi.c +++ b/arch/x86/cpu/baytrail/acpi.c @@ -167,7 +167,7 @@ void acpi_create_gnvs(struct acpi_global_nvs *gnvs) * and PMC_BASE_ADDRESS are accessed, so we need make sure the base addresses * of these two blocks are programmed by either U-Boot or FSP. * - * It has been verified that 1st phase API (see arch/x86/lib/fsp/fsp_car.S) + * It has been verified that 1st phase API (see arch/x86/lib/fsp1/fsp_car.S) * on Intel BayTrail SoC already initializes these two base addresses so * we are safe to access these registers here. */ diff --git a/arch/x86/cpu/baytrail/fsp_configs.c b/arch/x86/cpu/baytrail/fsp_configs.c index cefd262..5b5d66a 100644 --- a/arch/x86/cpu/baytrail/fsp_configs.c +++ b/arch/x86/cpu/baytrail/fsp_configs.c @@ -7,7 +7,7 @@ #include #include -#include +#include DECLARE_GLOBAL_DATA_PTR; diff --git a/arch/x86/cpu/braswell/fsp_configs.c b/arch/x86/cpu/braswell/fsp_configs.c index 7fe6fa7..607e333 100644 --- a/arch/x86/cpu/braswell/fsp_configs.c +++ b/arch/x86/cpu/braswell/fsp_configs.c @@ -5,7 +5,7 @@ #include #include -#include +#include DECLARE_GLOBAL_DATA_PTR; diff --git a/arch/x86/cpu/ivybridge/fsp_configs.c b/arch/x86/cpu/ivybridge/fsp_configs.c index 2fd06b3..773c2b2 100644 --- a/arch/x86/cpu/ivybridge/fsp_configs.c +++ b/arch/x86/cpu/ivybridge/fsp_configs.c @@ -5,7 +5,7 @@ #include #include -#include +#include DECLARE_GLOBAL_DATA_PTR; diff --git a/arch/x86/cpu/queensbay/fsp_configs.c b/arch/x86/cpu/queensbay/fsp_configs.c index c4d1177..0dd1901 100644 --- a/arch/x86/cpu/queensbay/fsp_configs.c +++ b/arch/x86/cpu/queensbay/fsp_configs.c @@ -5,7 +5,7 @@ */ #include -#include +#include void update_fsp_configs(struct fsp_config_data *config, struct fspinit_rtbuf *rt_buf) diff --git a/arch/x86/cpu/queensbay/tnc.c b/arch/x86/cpu/queensbay/tnc.c index 76556fc..66737e6 100644 --- a/arch/x86/cpu/queensbay/tnc.c +++ b/arch/x86/cpu/queensbay/tnc.c @@ -12,7 +12,7 @@ #include #include #include -#include +#include #include static int __maybe_unused disable_igd(void) diff --git a/arch/x86/include/asm/fsp/fsp_api.h b/arch/x86/include/asm/fsp1/fsp_api.h similarity index 100% rename from arch/x86/include/asm/fsp/fsp_api.h rename to arch/x86/include/asm/fsp1/fsp_api.h diff --git a/arch/x86/include/asm/fsp/fsp_azalia.h b/arch/x86/include/asm/fsp1/fsp_azalia.h similarity index 100% rename from arch/x86/include/asm/fsp/fsp_azalia.h rename to arch/x86/include/asm/fsp1/fsp_azalia.h diff --git a/arch/x86/include/asm/fsp/fsp_bootmode.h b/arch/x86/include/asm/fsp1/fsp_bootmode.h similarity index 100% rename from arch/x86/include/asm/fsp/fsp_bootmode.h rename to arch/x86/include/asm/fsp1/fsp_bootmode.h diff --git a/arch/x86/include/asm/fsp/fsp_ffs.h b/arch/x86/include/asm/fsp1/fsp_ffs.h similarity index 100% rename from arch/x86/include/asm/fsp/fsp_ffs.h rename to arch/x86/include/asm/fsp1/fsp_ffs.h diff --git a/arch/x86/include/asm/fsp/fsp_fv.h b/arch/x86/include/asm/fsp1/fsp_fv.h similarity index 100% rename from arch/x86/include/asm/fsp/fsp_fv.h rename to arch/x86/include/asm/fsp1/fsp_fv.h diff --git a/arch/x86/include/asm/fsp/fsp_hob.h b/arch/x86/include/asm/fsp1/fsp_hob.h similarity index 100% rename from arch/x86/include/asm/fsp/fsp_hob.h rename to arch/x86/include/asm/fsp1/fsp_hob.h diff --git a/arch/x86/include/asm/fsp/fsp_infoheader.h b/arch/x86/include/asm/fsp1/fsp_infoheader.h similarity index 100% rename from arch/x86/include/asm/fsp/fsp_infoheader.h rename to arch/x86/include/asm/fsp1/fsp_infoheader.h diff --git a/arch/x86/include/asm/fsp/fsp_support.h b/arch/x86/include/asm/fsp1/fsp_support.h similarity index 100% rename from arch/x86/include/asm/fsp/fsp_support.h rename to arch/x86/include/asm/fsp1/fsp_support.h diff --git a/arch/x86/include/asm/fsp/fsp_types.h b/arch/x86/include/asm/fsp1/fsp_types.h similarity index 100% rename from arch/x86/include/asm/fsp/fsp_types.h rename to arch/x86/include/asm/fsp1/fsp_types.h diff --git a/arch/x86/include/asm/u-boot-x86.h b/arch/x86/include/asm/u-boot-x86.h index c252192..2466ad2 100644 --- a/arch/x86/include/asm/u-boot-x86.h +++ b/arch/x86/include/asm/u-boot-x86.h @@ -74,7 +74,7 @@ u32 isa_map_rom(u32 bus_addr, int size); /* arch/x86/lib/... */ int video_bios_init(void); -/* arch/x86/lib/fsp/... */ +/* arch/x86/lib/fsp1,2/... */ /** * fsp_save_s3_stack() - save stack address to CMOS for next S3 boot diff --git a/arch/x86/lib/Makefile b/arch/x86/lib/Makefile index 906be5e..a8c7448 100644 --- a/arch/x86/lib/Makefile +++ b/arch/x86/lib/Makefile @@ -43,7 +43,8 @@ ifndef CONFIG_SPL_BUILD obj-$(CONFIG_CMD_ZBOOT) += zimage.o endif obj-$(CONFIG_USE_HOB) += hob.o -obj-$(CONFIG_HAVE_FSP) += fsp/ +obj-$(CONFIG_FSP_VERSION1) += fsp1/ +obj-$(CONFIG_FSP_VERSION2) += fsp2/ ifdef CONFIG_SPL_BUILD ifdef CONFIG_TPL_BUILD diff --git a/arch/x86/lib/fsp/Makefile b/arch/x86/lib/fsp1/Makefile similarity index 100% rename from arch/x86/lib/fsp/Makefile rename to arch/x86/lib/fsp1/Makefile diff --git a/arch/x86/lib/fsp/fsp_car.S b/arch/x86/lib/fsp1/fsp_car.S similarity index 100% rename from arch/x86/lib/fsp/fsp_car.S rename to arch/x86/lib/fsp1/fsp_car.S diff --git a/arch/x86/lib/fsp/fsp_common.c b/arch/x86/lib/fsp1/fsp_common.c similarity index 99% rename from arch/x86/lib/fsp/fsp_common.c rename to arch/x86/lib/fsp1/fsp_common.c index ed0827c..591eef7 100644 --- a/arch/x86/lib/fsp/fsp_common.c +++ b/arch/x86/lib/fsp1/fsp_common.c @@ -14,7 +14,7 @@ #include #include #include -#include +#include DECLARE_GLOBAL_DATA_PTR; diff --git a/arch/x86/lib/fsp/fsp_dram.c b/arch/x86/lib/fsp1/fsp_dram.c similarity index 98% rename from arch/x86/lib/fsp/fsp_dram.c rename to arch/x86/lib/fsp1/fsp_dram.c index 3a23b70..3bf65b4 100644 --- a/arch/x86/lib/fsp/fsp_dram.c +++ b/arch/x86/lib/fsp1/fsp_dram.c @@ -4,7 +4,7 @@ */ #include -#include +#include #include #include #include diff --git a/arch/x86/lib/fsp/fsp_graphics.c b/arch/x86/lib/fsp1/fsp_graphics.c similarity index 98% rename from arch/x86/lib/fsp/fsp_graphics.c rename to arch/x86/lib/fsp1/fsp_graphics.c index 91d2d08..52e7133 100644 --- a/arch/x86/lib/fsp/fsp_graphics.c +++ b/arch/x86/lib/fsp1/fsp_graphics.c @@ -7,7 +7,7 @@ #include #include #include -#include +#include DECLARE_GLOBAL_DATA_PTR; diff --git a/arch/x86/lib/fsp/fsp_support.c b/arch/x86/lib/fsp1/fsp_support.c similarity index 99% rename from arch/x86/lib/fsp/fsp_support.c rename to arch/x86/lib/fsp1/fsp_support.c index 0eaa9b2..019a42f 100644 --- a/arch/x86/lib/fsp/fsp_support.c +++ b/arch/x86/lib/fsp1/fsp_support.c @@ -5,7 +5,7 @@ */ #include -#include +#include #include struct fsp_header *__attribute__((optimize("O0"))) find_fsp_header(void) diff --git a/board/advantech/som-db5800-som-6867/som-db5800-som-6867.c b/board/advantech/som-db5800-som-6867/som-db5800-som-6867.c index ac12f30..8f4c587 100644 --- a/board/advantech/som-db5800-som-6867/som-db5800-som-6867.c +++ b/board/advantech/som-db5800-som-6867/som-db5800-som-6867.c @@ -5,7 +5,7 @@ */ #include -#include +#include /* ALC262 Verb Table - 10EC0262 */ static const u32 verb_table_data13[] = { diff --git a/board/intel/cherryhill/cherryhill.c b/board/intel/cherryhill/cherryhill.c index 695af6b..c037d5b 100644 --- a/board/intel/cherryhill/cherryhill.c +++ b/board/intel/cherryhill/cherryhill.c @@ -5,7 +5,7 @@ #include #include -#include +#include static const struct gpio_family gpio_family[] = { GPIO_FAMILY_CONF("SOUTHEAST_2_hshvfamily_2x3_rcomp_7_0", NA, 0, diff --git a/cmd/x86/fsp.c b/cmd/x86/fsp.c index efa1838..fb27624 100644 --- a/cmd/x86/fsp.c +++ b/cmd/x86/fsp.c @@ -5,7 +5,7 @@ #include #include -#include +#include DECLARE_GLOBAL_DATA_PTR; diff --git a/drivers/pci/pci-uclass.c b/drivers/pci/pci-uclass.c index ab3e131..b73d0cd 100644 --- a/drivers/pci/pci-uclass.c +++ b/drivers/pci/pci-uclass.c @@ -12,7 +12,7 @@ #include #include #if defined(CONFIG_X86) && defined(CONFIG_HAVE_FSP) -#include +#include #endif #include "pci_internal.h" -- 2.7.4