REF: https://bugzilla.tianocore.org/show_bug.cgi?id=2781 Provides sample code to include FSPT_ARCH_UPD initial values with UPD header revision set to 2. Cc: Maurice Ma <maurice.ma@intel.com> Cc: Nate DeSimone <nathaniel.l.desimone@intel.com> Cc: Star Zeng <star.zeng@intel.com> Signed-off-by: Chasel Chiu <chasel.chiu@intel.com> Reviewed-by: Nate DeSimone <nathaniel.l.desimone@intel.com>
		
			
				
	
	
		
			62 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			62 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/** @file
 | 
						|
  Sample to provide TempRamInitParams data.
 | 
						|
 | 
						|
  Copyright (c) 2014 - 2020, Intel Corporation. All rights reserved.<BR>
 | 
						|
  SPDX-License-Identifier: BSD-2-Clause-Patent
 | 
						|
 | 
						|
**/
 | 
						|
 | 
						|
#include <Library/PcdLib.h>
 | 
						|
#include <FspEas.h>
 | 
						|
 | 
						|
typedef struct {
 | 
						|
  UINT32                      MicrocodeRegionBase;
 | 
						|
  UINT32                      MicrocodeRegionSize;
 | 
						|
  UINT32                      CodeRegionBase;
 | 
						|
  UINT32                      CodeRegionSize;
 | 
						|
} FSPT_CORE_UPD;
 | 
						|
 | 
						|
typedef struct {
 | 
						|
  FSP_UPD_HEADER    FspUpdHeader;
 | 
						|
  //
 | 
						|
  // If platform does not support FSP spec 2.2 remove FSPT_ARCH_UPD structure.
 | 
						|
  //
 | 
						|
  FSPT_ARCH_UPD     FsptArchUpd;
 | 
						|
  FSPT_CORE_UPD     FsptCoreUpd;
 | 
						|
} FSPT_UPD_CORE_DATA;
 | 
						|
 | 
						|
GLOBAL_REMOVE_IF_UNREFERENCED CONST FSPT_UPD_CORE_DATA FsptUpdDataPtr = {
 | 
						|
  {
 | 
						|
    0x4450555F54505346,
 | 
						|
    //
 | 
						|
    // UPD header revision must be equal or greater than 2 when the structure is compliant with FSP spec 2.2.
 | 
						|
    //
 | 
						|
    0x02,
 | 
						|
    { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 | 
						|
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
 | 
						|
    }
 | 
						|
  },
 | 
						|
  //
 | 
						|
  // If platform does not support FSP spec 2.2 remove FSPT_ARCH_UPD structure.
 | 
						|
  //
 | 
						|
  {
 | 
						|
    0x01,
 | 
						|
    {
 | 
						|
      0x00, 0x00, 0x00
 | 
						|
    },
 | 
						|
    0x00000020,
 | 
						|
    0x00000000,
 | 
						|
    {
 | 
						|
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 | 
						|
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
 | 
						|
    }
 | 
						|
  },
 | 
						|
  {
 | 
						|
    ((UINT32)FixedPcdGet64 (PcdCpuMicrocodePatchAddress) + FixedPcdGet32 (PcdFlashMicrocodeOffset)),
 | 
						|
    ((UINT32)FixedPcdGet64 (PcdCpuMicrocodePatchRegionSize) - FixedPcdGet32 (PcdFlashMicrocodeOffset)),
 | 
						|
    FixedPcdGet32 (PcdFlashCodeCacheAddress),
 | 
						|
    FixedPcdGet32 (PcdFlashCodeCacheSize),
 | 
						|
  }
 | 
						|
};
 | 
						|
 |