Alexandru Gagniuc (mr.nuke.me@gmail.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/11465
-gerrit
commit fafe131d3045d495f672f5e33b99a0cef22442ea Author: Alexandru Gagniuc mr.nuke.me@gmail.com Date: Sat Aug 29 18:53:43 2015 -0700
UNTESTED: drivers/intel/fsp1_1: Take platform ID as a string, not integers
The platform ID is an 8 character ASCII string, so our config should take it in as a string, rather than a set of two 32-bit integers.
Change-Id: I76da85fab59fe4891fbc3b5edf430f2791b70ffb Signed-off-by: Alexandru Gagniuc mr.nuke.me@gmail.com --- src/drivers/intel/fsp1_1/Kconfig | 14 ++++---------- src/drivers/intel/fsp1_1/fsp_util.c | 11 +++++++++-- 2 files changed, 13 insertions(+), 12 deletions(-)
diff --git a/src/drivers/intel/fsp1_1/Kconfig b/src/drivers/intel/fsp1_1/Kconfig index af5920b..2d25b04 100644 --- a/src/drivers/intel/fsp1_1/Kconfig +++ b/src/drivers/intel/fsp1_1/Kconfig @@ -50,17 +50,11 @@ config FSP_FILE help The path and filename of the Intel FSP binary for this platform.
-config FSP_IMAGE_ID_DWORD0 - hex "First 4 bytes of 8 byte platform string" +config FSP_IMAGE_ID_STRING + string "8 byte platform string identtifying the FSP platform" help - The first four bytes of the eight byte platform specific string - used to identify the FSP binary that should be used. - -config FSP_IMAGE_ID_DWORD1 - hex "Second 4 bytes of 8 byte platform string" - help - The second four bytes of the eight byte platform specific string - used to identify the FSP binary that should be used. + 8 ASCII character byte signature string that will help match the FSP + binary to a supported hardware configuration.
config FSP_INCLUDE_PATH string "Path for FSP specific include files" diff --git a/src/drivers/intel/fsp1_1/fsp_util.c b/src/drivers/intel/fsp1_1/fsp_util.c index 09d1286..cb58d27 100644 --- a/src/drivers/intel/fsp1_1/fsp_util.c +++ b/src/drivers/intel/fsp1_1/fsp_util.c @@ -36,6 +36,13 @@ FSP_INFO_HEADER *find_fsp(void) u8 *u8; u32 u32; } fsp_ptr; + static const union { + char str_id[8]; + u32 int_id[2]; + } fsp_id = { + .str_id = CONFIG_FSP_IMAGE_ID_STRING + }; + u32 *image_id;
for (;;) { @@ -87,8 +94,8 @@ FSP_INFO_HEADER *find_fsp(void)
/* Verify the FSP ID */ image_id = (u32 *)&fsp_ptr.fih->ImageId[0]; - if ((image_id[0] != CONFIG_FSP_IMAGE_ID_DWORD0) - || (image_id[1] != CONFIG_FSP_IMAGE_ID_DWORD1)) + if ((image_id[0] != fsp_id.int_id[0]) + || (image_id[1] != fsp_id.int_id[1])) fsp_ptr.u8 = (u8 *)ERROR_FSP_SIG_MISMATCH; break; }