[coreboot-gerrit] Patch set updated for coreboot: 7f474d3 FSP chipsets: Use macro for 32 & 64 bit signatures

Martin Roth (gaumless@gmail.com) gerrit at coreboot.org
Sat Jan 31 17:58:39 CET 2015


Martin Roth (gaumless at gmail.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/8064

-gerrit

commit 7f474d375152b602fb43645a04e36c71e2de3cfe
Author: Martin Roth <martin.roth at se-eng.com>
Date:   Fri Jan 2 19:02:44 2015 -0700

    FSP chipsets: Use macro for 32 & 64 bit signatures
    
    This takes what was already being done for the MRC_DATA_SIGNATURE
    and turns it into a macro, then uses that macro in all of the other
    places a 32-bit signature is needed.
    The macro is extended to 64-bits to use for all of the 64-bit
    signatures.
    
    This just makes things easier to read and understand.
    
    Change-Id: Ie5579056dbc4d10650ed77f91d5351615d394644
    Signed-off-by: Martin Roth <martin.roth at se-eng.com>
---
 src/drivers/intel/fsp/fsp_util.c                             | 5 ++---
 src/drivers/intel/fsp/fsp_util.h                             | 9 +++++++--
 src/northbridge/intel/fsp_rangeley/fsp/chipset_fsp_util.h    | 3 +--
 src/northbridge/intel/fsp_sandybridge/fsp/chipset_fsp_util.h | 6 ++----
 src/soc/intel/fsp_baytrail/fsp/chipset_fsp_util.h            | 3 +--
 5 files changed, 13 insertions(+), 13 deletions(-)

diff --git a/src/drivers/intel/fsp/fsp_util.c b/src/drivers/intel/fsp/fsp_util.c
index 2a53c25..c2a03b6 100644
--- a/src/drivers/intel/fsp/fsp_util.c
+++ b/src/drivers/intel/fsp/fsp_util.c
@@ -126,7 +126,7 @@ volatile u8 * find_fsp ()
 	fsp_ptr = (u8 *) CONFIG_FSP_LOC;
 
 	/* Check the FV signature, _FVH */
-	if (((EFI_FIRMWARE_VOLUME_HEADER *)fsp_ptr)->Signature == 0x4856465F) {
+	if (((EFI_FIRMWARE_VOLUME_HEADER *)fsp_ptr)->Signature == FIRMWARE_VOLUME_SIGNATURE) {
 		/* Go to the end of the FV header and align the address. */
 		fsp_ptr += ((EFI_FIRMWARE_VOLUME_HEADER *)fsp_ptr)->ExtHeaderOffset;
 		fsp_ptr += ((EFI_FIRMWARE_VOLUME_EXT_HEADER *)fsp_ptr)->ExtHeaderSize;
@@ -169,8 +169,7 @@ volatile u8 * find_fsp ()
 
 	/* Verify the FSP ID */
 	if (((u32)fsp_ptr > 0xff) &&
-		((*(u32 *)(fsp_ptr + FSP_IMAGE_ID_LOC) != FSP_IMAGE_ID_DWORD0) ||
-		 (*(u32 *)(fsp_ptr + (FSP_IMAGE_ID_LOC + 4)) != FSP_IMAGE_ID_DWORD1))) {
+		(*(u64 *)(fsp_ptr + FSP_IMAGE_ID_LOC) != FSP_IMAGE_ID)) {
 		fsp_ptr = (u8 *)ERROR_FSP_SIG_MISMATCH;
 	}
 
diff --git a/src/drivers/intel/fsp/fsp_util.h b/src/drivers/intel/fsp/fsp_util.h
index d65b842..fd065fb 100644
--- a/src/drivers/intel/fsp/fsp_util.h
+++ b/src/drivers/intel/fsp/fsp_util.h
@@ -20,6 +20,10 @@
 #ifndef FSP_UTIL_H
 #define FSP_UTIL_H
 
+#define SIG_32_BIT(a,b,c,d) ((a << 0) | (b << 8) | (c << 16) | (d << 24))
+#define SIG_64_BIT(a,b,c,d,e,f,g,h) ((u64)SIG_32_BIT(a,b,c,d) | \
+		((u64)SIG_32_BIT(e,f,g,h) << 32))
+
 #include <chipset_fsp_util.h>
 #include "fsp_values.h"
 
@@ -67,7 +71,7 @@ void printguid(EFI_GUID *guid);
 
 #if IS_ENABLED(CONFIG_ENABLE_MRC_CACHE)
 #define MRC_DATA_ALIGN			0x1000
-#define MRC_DATA_SIGNATURE		(('M'<<0)|('R'<<8)|('C'<<16)|('D'<<24))
+#define MRC_DATA_SIGNATURE		SIG_32_BIT('M','R','C','D')
 
 struct mrc_data_container {
 	u32	mrc_signature;	// "MRCD"
@@ -90,7 +94,8 @@ void update_mrc_cache(void *unused);
 #define FSP_IMAGE_ID_LOC				16
 #define FSP_IMAGE_BASE_LOC				28
 
-#define FSP_SIG						0x48505346	/* 'FSPH' */
+#define FSP_SIG				SIG_32_BIT('F','S','P','H')
+#define FIRMWARE_VOLUME_SIGNATURE	SIG_32_BIT('_','F','V','H')
 
 #define ERROR_NO_FV_SIG				1
 #define ERROR_NO_FFS_GUID				2
diff --git a/src/northbridge/intel/fsp_rangeley/fsp/chipset_fsp_util.h b/src/northbridge/intel/fsp_rangeley/fsp/chipset_fsp_util.h
index 3057865..7e07c9a 100644
--- a/src/northbridge/intel/fsp_rangeley/fsp/chipset_fsp_util.h
+++ b/src/northbridge/intel/fsp_rangeley/fsp/chipset_fsp_util.h
@@ -46,7 +46,6 @@
  * can be used to verify that the right FSP binary is loaded.
  * For the Rangeley FSP, the Image Id is "AVN-FSP0".
  */
-#define FSP_IMAGE_ID_DWORD0 0x2d4e5641	/* 'AVN-' */
-#define FSP_IMAGE_ID_DWORD1 0x30505346	/* 'FSP0' */
+#define FSP_IMAGE_ID SIG_64_BIT('A','V','N','-','F','S','P','0')
 
 #endif /* CHIPSET_FSP_UTIL_H */
diff --git a/src/northbridge/intel/fsp_sandybridge/fsp/chipset_fsp_util.h b/src/northbridge/intel/fsp_sandybridge/fsp/chipset_fsp_util.h
index f05b0fc..0018313 100644
--- a/src/northbridge/intel/fsp_sandybridge/fsp/chipset_fsp_util.h
+++ b/src/northbridge/intel/fsp_sandybridge/fsp/chipset_fsp_util.h
@@ -52,12 +52,10 @@
 
 #if IS_ENABLED(CONFIG_SOUTHBRIDGE_INTEL_FSP_I89XX)
 /* ST2-FSP0 */
-#define FSP_IMAGE_ID_DWORD0 0x2D325453
-#define FSP_IMAGE_ID_DWORD1 0x30505346
+#define FSP_IMAGE_ID SIG_64_BIT('S','T','2','-','F','S','P','0')
 #elif IS_ENABLED(CONFIG_SOUTHBRIDGE_INTEL_FSP_BD82X6X)
 /* CC2-FSP\0 */
-#define FSP_IMAGE_ID_DWORD0 0x2D324343
-#define FSP_IMAGE_ID_DWORD1 0x00505346
+#define FSP_IMAGE_ID SIG_64_BIT('C','C','2','-','F','S','P',0)
 #endif
 
 #ifdef __PRE_RAM__
diff --git a/src/soc/intel/fsp_baytrail/fsp/chipset_fsp_util.h b/src/soc/intel/fsp_baytrail/fsp/chipset_fsp_util.h
index 29309bf..f89169e 100644
--- a/src/soc/intel/fsp_baytrail/fsp/chipset_fsp_util.h
+++ b/src/soc/intel/fsp_baytrail/fsp/chipset_fsp_util.h
@@ -42,8 +42,7 @@
  * can be used to verify that the right FSP binary is loaded.
  * For the Bay Trail FSP, the Image Id is "VLYVIEW0".
  */
-#define FSP_IMAGE_ID_DWORD0 0x56594C56	/* 'VLYV' */
-#define FSP_IMAGE_ID_DWORD1 0x30574549	/* 'IEW0' */
+#define FSP_IMAGE_ID SIG_64_BIT('V','L','Y','V','I','E','W','0')
 
 /* Revision of the FSP binary */
 #define FSP_GOLD3_REV_ID    0x00000303



More information about the coreboot-gerrit mailing list