vendorcode/intel/fsp/fsp2_0/glk: Update header files as per v52_27
Update glk header files as per v52_27 FSP code. Change-Id: I8e313a2b854e60b1ad8a5c6e080641e323de56a8 Signed-off-by: Ravi Sarawadi <ravishankar.sarawadi@intel.com> Reviewed-on: https://review.coreboot.org/20673 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Aaron Durbin <adurbin@chromium.org>
This commit is contained in:
		
				
					committed by
					
						 Aaron Durbin
						Aaron Durbin
					
				
			
			
				
	
			
			
			
						parent
						
							09195ac0f9
						
					
				
				
					commit
					e56939e48e
				
			| @@ -37,11 +37,11 @@ are permitted provided that the following conditions are met: | ||||
|  | ||||
| #pragma pack(push, 1) | ||||
|  | ||||
| #define FSPT_UPD_SIGNATURE               0x545F4450554C5041        /* 'APLUPD_T' */ | ||||
| #define FSPT_UPD_SIGNATURE               0x545F4450554B4C47        /* 'GLKUPD_T' */ | ||||
|  | ||||
| #define FSPM_UPD_SIGNATURE               0x4D5F4450554C5041        /* 'APLUPD_M' */ | ||||
| #define FSPM_UPD_SIGNATURE               0x4D5F4450554B4C47        /* 'GLKUPD_M' */ | ||||
|  | ||||
| #define FSPS_UPD_SIGNATURE               0x535F4450554C5041        /* 'APLUPD_S' */ | ||||
| #define FSPS_UPD_SIGNATURE               0x535F4450554B4C47        /* 'GLKUPD_S' */ | ||||
|  | ||||
| #pragma pack(pop) | ||||
|  | ||||
|   | ||||
| @@ -38,41 +38,170 @@ are permitted provided that the following conditions are met: | ||||
| #pragma pack(push, 1) | ||||
|  | ||||
|  | ||||
| #define MAX_NODE_NUM     1 | ||||
| #define MAX_CHANNELS_NUM 4 | ||||
| #define MAX_DIMMS_NUM    1 | ||||
|  | ||||
| #define MAX_PROFILE_NUM     4 // number of memory profiles supported | ||||
| #define MAX_XMP_PROFILE_NUM 2 // number of XMP profiles supported | ||||
|  | ||||
| // | ||||
| // Matches MAX_SPD_SAVE define in MRC | ||||
| // | ||||
| #ifndef MAX_SPD_SAVE | ||||
| #define MAX_SPD_SAVE 29 | ||||
| #endif | ||||
|  | ||||
| // | ||||
| // MRC version description. | ||||
| // | ||||
| typedef struct { | ||||
|   UINT8         DimmId; | ||||
|   UINT32        SizeInMb; | ||||
|   UINT16        MfgId; | ||||
|   /** Module part number for DRR3 is 18 bytes | ||||
|   but DRR4 is 20 bytes as per JEDEC Spec, so | ||||
|   reserving 20 bytes **/ | ||||
|   UINT8         ModulePartNum[20]; | ||||
|   UINT8  Major;     ///< Major version number | ||||
|   UINT8  Minor;     ///< Minor version number | ||||
|   UINT8  Rev;       ///< Revision number | ||||
|   UINT8  Build;     ///< Build number | ||||
| } SiMrcVersion; | ||||
|  | ||||
| // | ||||
| // DIMM timings | ||||
| // | ||||
| typedef struct { | ||||
|   UINT32 tCK;       ///< Memory cycle time, in femtoseconds. | ||||
|   UINT16 NMode;     ///< Number of tCK cycles for the channel DIMM's command rate mode. | ||||
|   UINT16 tCL;       ///< Number of tCK cycles for the channel DIMM's CAS latency. | ||||
|   UINT16 tCWL;      ///< Number of tCK cycles for the channel DIMM's minimum CAS write latency time. | ||||
|   UINT16 tFAW;      ///< Number of tCK cycles for the channel DIMM's minimum four activate window delay time. | ||||
|   UINT16 tRAS;      ///< Number of tCK cycles for the channel DIMM's minimum active to precharge delay time. | ||||
|   UINT16 tRCDtRP;   ///< Number of tCK cycles for the channel DIMM's minimum RAS# to CAS# delay time and Row Precharge delay time. | ||||
|   UINT16 tREFI;     ///< Number of tCK cycles for the channel DIMM's minimum Average Periodic Refresh Interval. | ||||
|   UINT16 tRFC;      ///< Number of tCK cycles for the channel DIMM's minimum refresh recovery delay time. | ||||
|   UINT16 tRFCpb;    ///< Number of tCK cycles for the channel DIMM's minimum per bank refresh recovery delay time. | ||||
|   UINT16 tRFC2;     ///< Number of tCK cycles for the channel DIMM's minimum refresh recovery delay time. | ||||
|   UINT16 tRFC4;     ///< Number of tCK cycles for the channel DIMM's minimum refresh recovery delay time. | ||||
|   UINT16 tRPab;     ///< Number of tCK cycles for the channel DIMM's minimum row precharge delay time for all banks. | ||||
|   UINT16 tRRD;      ///< Number of tCK cycles for the channel DIMM's minimum row active to row active delay time. | ||||
|   UINT16 tRRD_L;    ///< Number of tCK cycles for the channel DIMM's minimum row active to row active delay time for same bank groups. | ||||
|   UINT16 tRRD_S;    ///< Number of tCK cycles for the channel DIMM's minimum row active to row active delay time for different bank groups. | ||||
|   UINT16 tRTP;      ///< Number of tCK cycles for the channel DIMM's minimum internal read to precharge command delay time. | ||||
|   UINT16 tWR;       ///< Number of tCK cycles for the channel DIMM's minimum write recovery time. | ||||
|   UINT16 tWTR;      ///< Number of tCK cycles for the channel DIMM's minimum internal write to read command delay time. | ||||
|   UINT16 tWTR_L;    ///< Number of tCK cycles for the channel DIMM's minimum internal write to read command delay time for same bank groups. | ||||
|   UINT16 tWTR_S;    ///< Number of tCK cycles for the channel DIMM's minimum internal write to read command delay time for different bank groups. | ||||
|   UINT16 tCCD_L;  ///< Number of tCK cycles for the channel DIMM's minimum CAS-to-CAS delay for same bank group. | ||||
| } MRC_CH_TIMING; | ||||
|  | ||||
| /// | ||||
| /// Memory SMBIOS & OC Memory Data Hob | ||||
| /// | ||||
| typedef struct { | ||||
|   UINT8             Status;                 ///< See MrcDimmStatus for the definition of this field. | ||||
|   UINT8             DimmId; | ||||
|   UINT32            DimmCapacity;           ///< DIMM size in MBytes. | ||||
|   UINT16            MfgId; | ||||
|   UINT8             ModulePartNum[20];      ///< Module part number for DDR3 is 18 bytes however for DRR4 20 bytes as per JEDEC Spec, so reserving 20 bytes | ||||
|   UINT8             RankInDimm;             ///< The number of ranks in this DIMM. | ||||
|   UINT8             SpdDramDeviceType;      ///< Save SPD DramDeviceType information needed for SMBIOS structure creation. | ||||
|   UINT8             SpdModuleType;          ///< Save SPD ModuleType information needed for SMBIOS structure creation. | ||||
|   UINT8             SpdModuleMemoryBusWidth;///< Save SPD ModuleMemoryBusWidth information needed for SMBIOS structure creation. | ||||
|   UINT8             SpdSave[MAX_SPD_SAVE];  ///< Save SPD Manufacturing information needed for SMBIOS structure creation. | ||||
| } DIMM_INFO; | ||||
|  | ||||
| typedef struct { | ||||
|   UINT8         ChannelId; | ||||
|   UINT8         DimmCount; | ||||
|   DIMM_INFO     DimmInfo[MAX_DIMMS_NUM]; | ||||
|   UINT8             Status;                  ///< Indicates whether this channel should be used. | ||||
|   UINT8             ChannelId; | ||||
|   UINT8             DimmCount;               ///< Number of valid DIMMs that exist in the channel. | ||||
|   MRC_CH_TIMING     Timing[MAX_PROFILE_NUM]; ///< The channel timing values. | ||||
|   DIMM_INFO         DimmInfo[MAX_DIMMS_NUM]; ///< Save the DIMM output characteristics. | ||||
| } CHANNEL_INFO; | ||||
|  | ||||
| typedef struct { | ||||
|   UINT8         Revision; | ||||
|   UINT8         DataWidth; | ||||
|   UINT8             Status;                  ///< Indicates whether this controller should be used. | ||||
|   UINT16            DeviceId;                ///< The PCI device id of this memory controller. | ||||
|   UINT8             RevisionId;              ///< The PCI revision id of this memory controller. | ||||
|   UINT8             ChannelCount;            ///< Number of valid channels that exist on the controller. | ||||
|   CHANNEL_INFO      ChannelInfo[MAX_CHANNELS_NUM];     ///< The following are channel level definitions. | ||||
| } CONTROLLER_INFO; | ||||
|  | ||||
| typedef struct { | ||||
|   UINT8             Revision; | ||||
|   UINT16            DataWidth;              ///< Data width, in bits, of this memory device | ||||
|   /** As defined in SMBIOS 3.0 spec | ||||
|     Section 7.18.2 and Table 75 | ||||
|   **/ | ||||
|   UINT16         MemoryType; | ||||
|   UINT16        MemoryFrequencyInMHz; | ||||
|   UINT8             MemoryType;             ///< DDR type: DDR3, DDR4, or LPDDR3 | ||||
|   UINT16            MaximumMemoryClockSpeed;///< The maximum capable speed of the device, in megahertz (MHz) | ||||
|   UINT16            ConfiguredMemoryClockSpeed; ///< The configured clock speed to the memory device, in megahertz (MHz) | ||||
|   /** As defined in SMBIOS 3.0 spec | ||||
|     Section 7.17.3 and Table 72 | ||||
|   **/ | ||||
|   UINT8         ErrorCorrectionType; | ||||
|   UINT8         ChannelCount; | ||||
|   CHANNEL_INFO  ChannelInfo[MAX_CHANNELS_NUM]; | ||||
|   UINT8             ErrorCorrectionType; | ||||
|  | ||||
|   SiMrcVersion      Version; | ||||
|   BOOLEAN           EccSupport; | ||||
|   UINT8             MemoryProfile; | ||||
|   UINT32            TotalPhysicalMemorySize; | ||||
|   UINT32            DefaultXmptCK[MAX_XMP_PROFILE_NUM];///< Stores the tCK value read from SPD XMP profiles if they exist. | ||||
|   UINT8             XmpProfileEnable;                  ///< If XMP capable DIMMs are detected, this will indicate which XMP Profiles are common among all DIMMs. | ||||
|   UINT8             Ratio; | ||||
|   UINT8             RefClk; | ||||
|   UINT32            VddVoltage[MAX_PROFILE_NUM]; | ||||
|   CONTROLLER_INFO   Controller[MAX_NODE_NUM]; | ||||
| } FSP_SMBIOS_MEMORY_INFO; | ||||
|  | ||||
| typedef struct { | ||||
|   UINT16     TotalNumberOfSockets; | ||||
|   UINT16     CurrentSocketNumber; | ||||
|   UINT8      ProcessorType;                 ///< ENUM defined in SMBIOS Spec v3.0 Section 7.5.1 | ||||
|   /** This info is used for both ProcessorFamily and ProcessorFamily2 fields | ||||
|       See ENUM defined in SMBIOS Spec v3.0 Section 7.5.2 | ||||
|   **/ | ||||
|   UINT16     ProcessorFamily; | ||||
|   UINT8      ProcessorManufacturerStrIndex; ///< Index of the String in the String Buffer | ||||
|   UINT64     ProcessorId;                   ///< ENUM defined in SMBIOS Spec v3.0 Section 7.5.3 | ||||
|   UINT8      ProcessorVersionStrIndex;      ///< Index of the String in the String Buffer | ||||
|   UINT8      Voltage;                       ///< Format defined in SMBIOS Spec v3.0 Section 7.5.4 | ||||
|   UINT16     ExternalClockInMHz;            ///< External Clock Frequency. Set to 0 if unknown. | ||||
|   UINT16     CurrentSpeedInMHz;             ///< Snapshot of current processor speed during boot | ||||
|   UINT8      Status;                        ///< Format defined in the SMBIOS Spec v3.0 Table 21 | ||||
|   UINT8      ProcessorUpgrade;              ///< ENUM defined in SMBIOS Spec v3.0 Section 7.5.5 | ||||
|   /** This info is used for both CoreCount & CoreCount2 fields | ||||
|       See detailed description in SMBIOS Spec v3.0 Section 7.5.6 | ||||
|   **/ | ||||
|   UINT16     CoreCount; | ||||
|   /** This info is used for both CoreEnabled & CoreEnabled2 fields | ||||
|       See detailed description in SMBIOS Spec v3.0 Section 7.5.7 | ||||
|   **/ | ||||
|   UINT16     EnabledCoreCount; | ||||
|   /** This info is used for both ThreadCount & ThreadCount2 fields | ||||
|       See detailed description in SMBIOS Spec v3.0 Section 7.5.8 | ||||
|   **/ | ||||
|   UINT16     ThreadCount; | ||||
|   UINT16     ProcessorCharacteristics;      ///< Format defined in SMBIOS Spec v3.0 Section 7.5.9 | ||||
|   /** | ||||
|   String Buffer - each string terminated by NULL "0x00" | ||||
|   String buffer terminated by double NULL "0x0000" | ||||
|   **/ | ||||
| } FSP_SMBIOS_PROCESSOR_INFO; | ||||
|  | ||||
| typedef struct { | ||||
|   UINT16     ProcessorSocketNumber; | ||||
|   UINT16     NumberOfCacheLevels;         ///< Based on Number of Cache Types L1/L2/L3 | ||||
|   UINT8      SocketDesignationStrIndex;   ///< String Index in the string Buffer. Example "L1-CACHE" | ||||
|   UINT16     CacheConfiguration;          ///< Format defined in SMBIOS Spec v3.0 Section7.8 Table36 | ||||
|   UINT16     MaxCacheSize;                ///< Format defined in SMBIOS Spec v3.0 Section7.8.1 | ||||
|   UINT16     InstalledSize;               ///< Format defined in SMBIOS Spec v3.0 Section7.8.1 | ||||
|   UINT16     SupportedSramType;           ///< Format defined in SMBIOS Spec v3.0 Section7.8.2 | ||||
|   UINT16     CurrentSramType;             ///< Format defined in SMBIOS Spec v3.0 Section7.8.2 | ||||
|   UINT8      CacheSpeed;                  ///< Cache Speed in nanoseconds. 0 if speed is unknown. | ||||
|   UINT8      ErrorCorrectionType;         ///< ENUM Format defined in SMBIOS Spec v3.0 Section 7.8.3 | ||||
|   UINT8      SystemCacheType;             ///< ENUM Format defined in SMBIOS Spec v3.0 Section 7.8.4 | ||||
|   UINT8      Associativity;               ///< ENUM Format defined in SMBIOS Spec v3.0 Section 7.8.5 | ||||
|   /** | ||||
|   String Buffer - each string terminated by NULL "0x00" | ||||
|   String buffer terminated by double NULL "0x0000" | ||||
|   **/ | ||||
| } FSP_SMBIOS_CACHE_INFO; | ||||
|  | ||||
|  | ||||
| /** Fsp M Configuration | ||||
| **/ | ||||
| @@ -157,25 +286,21 @@ typedef struct { | ||||
|   UINT8                       Package; | ||||
|  | ||||
| /** Offset 0x004E - Profile | ||||
|   Profile list. 0x19(Default). | ||||
|   0x1:WIO2_800_7_8_8, 0x2:WIO2_1066_9_10_10, 0x3:LPDDR3_1066_8_10_10, 0x4:LPDDR3_1333_10_12_12, | ||||
|   0x5:LPDDR3_1600_12_15_15, 0x6:LPDDR3_1866_14_17_17, 0x7:LPDDR3_2133_16_20_20, 0x8:LPDDR4_1066_10_10_10, | ||||
|   0x9:LPDDR4_1600_14_15_15, 0xA:LPDDR4_2133_20_20_20, 0xB:LPDDR4_2400_24_22_22, 0xC:LPDDR4_2666_24_24_24, | ||||
|   0xD:LPDDR4_2933_28_27_27, 0xE:LPDDR4_3200_28_29_29, 0xF:DDR3_1066_6_6_6, 0x10:DDR3_1066_7_7_7, | ||||
|   0x11:DDR3_1066_8_8_8, 0x12:DDR3_1333_7_7_7, 0x13:DDR3_1333_8_8_8, 0x14:DDR3_1333_9_9_9, | ||||
|   0x15:DDR3_1333_10_10_10, 0x16:DDR3_1600_8_8_8, 0x17:DDR3_1600_9_9_9, 0x18:DDR3_1600_10_10_10, | ||||
|   0x19:DDR3_1600_11_11_11, 0x1A:DDR3_1866_10_10_10, 0x1B:DDR3_1866_11_11_11, 0x1C:DDR3_1866_12_12_12, | ||||
|   0x1D:DDR3_1866_13_13_13, 0x1E:DDR3_2133_11_11_11, 0x1F:DDR3_2133_12_12_12, 0x20:DDR3_2133_13_13_13, | ||||
|   0x21:DDR3_2133_14_14_14, 0x22:DDR4_1333_10_10_10, 0x23:DDR4_1600_10_10_10, 0x24:DDR4_1600_11_11_11, | ||||
|   0x25:DDR4_1600_12_12_12, 0x26:DDR4_1866_12_12_12, 0x27:DDR4_1866_13_13_13, 0x28:DDR4_1866_14_14_14, | ||||
|   0x29:DDR4_2133_14_14_14, 0x2A:DDR4_2133_15_15_15, 0x2B:DDR4_2133_16_16_16, 0x2C:DDR4_2400_15_15_15, | ||||
|   0x2D:DDR4_2400_16_16_16, 0x2E:DDR4_2400_17_17_17, 0x2F:DDR4_2400_18_18_18 | ||||
|   Profile list. 0x15(Default). | ||||
|   0x01:LPDDR3_1333_10_12_12, 0x02:LPDDR3_1600_12_15_15, 0x03:LPDDR3_1866_14_17_17, | ||||
|   0x04:LPDDR4_1600_14_15_15, 0x05:LPDDR4_1866_20_17_17, 0x06:LPDDR4_2133_20_20_20, | ||||
|   0x07:LPDDR4_2400_24_22_22, 0x08:LPDDR4_2666_24_24_24, 0x09:LPDDR4_3200_28_29_29, | ||||
|   0x0A:DDR4_1600_10_10_10, 0x0B:DDR4_1600_11_11_11, 0x0C:DDR4_1600_12_12_12, 0x0D:DDR4_1866_12_12_12, | ||||
|   0x0E:DDR4_1866_13_13_13, 0x0F:DDR4_1866_14_14_14, 0x10:DDR4_2133_14_14_14, 0x11:DDR4_2133_15_15_15, | ||||
|   0x12:DDR4_2133_16_16_16, 0x13:DDR4_2400_15_15_15, 0x14:DDR4_2400_16_16_16, 0x15:DDR4_2400_17_17_17, | ||||
|   0x16:DDR4_2400_18_18_18, 0x17:DDR4_2666_17_17_17, 0x18:DDR4_2666_18_18_18, 0x19:DDR4_2666_19_19_19, | ||||
|   0x1A:DDR4_2666_20_20_20 | ||||
| **/ | ||||
|   UINT8                       Profile; | ||||
|  | ||||
| /** Offset 0x004F - MemoryDown | ||||
|   Memory Down. 0x0(Default). | ||||
|   0x0:No, 0x1:Yes, 0x2:1MD+SODIMM (for DDR3L only) ACRD, 0x3:1x32 LPDDR4 | ||||
|   0x0:No, 0x1:Yes, 0x2:1MD+SODIMM (for DDR3L/4 only) ACRD, 0x3:1x32 LPDDR4 | ||||
| **/ | ||||
|   UINT8                       MemoryDown; | ||||
|  | ||||
| @@ -302,7 +427,7 @@ typedef struct { | ||||
|   (not to be confused with the SoC Memory Channel width which is always x32 for LPDDR3\LPDDR4 | ||||
|   and x64 for DDR3L). LPDDR4 devices typically have two channels per die and a x16 | ||||
|   device width: 00 - x8; 01 - x16; 10 - x32; 11 - x64 | ||||
|   0b0000:x8, 0b0001:x16, 0b0010:x32, 0b0011:x64 | ||||
|   0x00:x8, 0x01:x16, 0x02:x32, 0x03:x64 | ||||
| **/ | ||||
|   UINT8                       Ch0_DeviceWidth; | ||||
|  | ||||
| @@ -314,7 +439,7 @@ typedef struct { | ||||
|   8GB 2Rx8 configuration will utilize sixteen 4Gb density DRAMS. In this configuration, | ||||
|   a 4Gb density setting would be selected in the MRC: 000 - 4Gb; 001 - 6Gb; 010 - | ||||
|   8Gb; 011 - 12Gb; 100 - 16Gb; 101 - 2Gb; 110-111 - Reserved | ||||
|   0b0000:4Gb, 0b0001:6Gb, 0b0010:8Gb, 0b0011:12Gb, 0b0100:16Gb | ||||
|   0x00:4Gb, 0x01:6Gb, 0x02:8Gb, 0x03:12Gb, 0x04:16Gb | ||||
| **/ | ||||
|   UINT8                       Ch0_DramDensity; | ||||
|  | ||||
| @@ -383,7 +508,7 @@ typedef struct { | ||||
|   (not to be confused with the SoC Memory Channel width which is always x32 for LPDDR3\LPDDR4 | ||||
|   and x64 for DDR3L). LPDDR4 devices typically have two channels per die and a x16 | ||||
|   device width: 00 - x8; 01 - x16; 10 - x32; 11 - x64 | ||||
|   0b0000:x8, 0b0001:x16, 0b0010:x32, 0b0011:x64 | ||||
|   0x00:x8, 0x01:x16, 0x02:x32, 0x03:x64 | ||||
| **/ | ||||
|   UINT8                       Ch1_DeviceWidth; | ||||
|  | ||||
| @@ -395,7 +520,7 @@ typedef struct { | ||||
|   8GB 2Rx8 configuration will utilize sixteen 4Gb density DRAMS. In this configuration, | ||||
|   a 4Gb density setting would be selected in the MRC: 000 - 4Gb; 001 - 6Gb; 010 - | ||||
|   8Gb; 011 - 12Gb; 100 - 16Gb; 101 - 2Gb; 110-111 - Reserved | ||||
|   0b0000:4Gb, 0b0001:6Gb, 0b0010:8Gb, 0b0011:12Gb, 0b0100:16Gb | ||||
|   0x00:4Gb, 0x01:6Gb, 0x02:8Gb, 0x03:12Gb, 0x04:16Gb | ||||
| **/ | ||||
|   UINT8                       Ch1_DramDensity; | ||||
|  | ||||
| @@ -453,7 +578,7 @@ typedef struct { | ||||
|   (not to be confused with the SoC Memory Channel width which is always x32 for LPDDR3\LPDDR4 | ||||
|   and x64 for DDR3L). LPDDR4 devices typically have two channels per die and a x16 | ||||
|   device width: 00 - x8; 01 - x16; 10 - x32; 11 - x64 | ||||
|   0b0000:x8, 0b0001:x16, 0b0010:x32, 0b0011:x64 | ||||
|   0x00:x8, 0x01:x16, 0x02:x32, 0x03:x64 | ||||
| **/ | ||||
|   UINT8                       Ch2_DeviceWidth; | ||||
|  | ||||
| @@ -465,7 +590,7 @@ typedef struct { | ||||
|   8GB 2Rx8 configuration will utilize sixteen 4Gb density DRAMS. In this configuration, | ||||
|   a 4Gb density setting would be selected in the MRC: 000 - 4Gb; 001 - 6Gb; 010 - | ||||
|   8Gb; 011 - 12Gb; 100 - 16Gb; 101 - 2Gb; 110-111 - Reserved | ||||
|   0b0000:4Gb, 0b0001:6Gb, 0b0010:8Gb, 0b0011:12Gb, 0b0100:16Gb | ||||
|   0x00:4Gb, 0x01:6Gb, 0x02:8Gb, 0x03:12Gb, 0x04:16Gb | ||||
| **/ | ||||
|   UINT8                       Ch2_DramDensity; | ||||
|  | ||||
| @@ -523,7 +648,7 @@ typedef struct { | ||||
|   (not to be confused with the SoC Memory Channel width which is always x32 for LPDDR3\LPDDR4 | ||||
|   and x64 for DDR3L). LPDDR4 devices typically have two channels per die and a x16 | ||||
|   device width: 00 - x8; 01 - x16; 10 - x32; 11 - x64 | ||||
|   0b0000:x8, 0b0001:x16, 0b0010:x32, 0b0011:x64 | ||||
|   0x00:x8, 0x01:x16, 0x02:x32, 0x03:x64 | ||||
| **/ | ||||
|   UINT8                       Ch3_DeviceWidth; | ||||
|  | ||||
| @@ -535,7 +660,7 @@ typedef struct { | ||||
|   8GB 2Rx8 configuration will utilize sixteen 4Gb density DRAMS. In this configuration, | ||||
|   a 4Gb density setting would be selected in the MRC: 000 - 4Gb; 001 - 6Gb; 010 - | ||||
|   8Gb; 011 - 12Gb; 100 - 16Gb; 101 - 2Gb; 110-111 - Reserved | ||||
|   0b0000:4Gb, 0b0001:6Gb, 0b0010:8Gb, 0b0011:12Gb, 0b0100:16Gb | ||||
|   0x00:4Gb, 0x01:6Gb, 0x02:8Gb, 0x03:12Gb, 0x04:16Gb | ||||
| **/ | ||||
|   UINT8                       Ch3_DramDensity; | ||||
|  | ||||
| @@ -820,33 +945,50 @@ typedef struct { | ||||
| **/ | ||||
|   UINT8                       EnableS3Heci2; | ||||
|  | ||||
| /** Offset 0x0152 | ||||
| /** Offset 0x0152 - PCI Express Root Port | ||||
|   Control the PCI Express Root Port . 0:Disable, 1:Enable, 2:Auto(Default). | ||||
| **/ | ||||
|   UINT8                       ReservedFspmUpd[3]; | ||||
|   UINT8                       PcieRootPortEn[6]; | ||||
|  | ||||
| /** Offset 0x0158 - PCIE SLOT Power Enable Assert Time - PFET. | ||||
|   ACPI Timer Ticker to measure when PCIE Slot Power is enabled through PFET. FSP will | ||||
|   wait for 100ms for the power to be stable, before de-asserting PERST bin. Customer | ||||
|   who designed the board PCIE slot Power automatically enabled, can pass value of | ||||
|   zero here. | ||||
| **/ | ||||
|   UINT64                      StartTimerTickerOfPfetAssert; | ||||
|  | ||||
| /** Offset 0x0160 | ||||
| **/ | ||||
|   VOID*                       VariableNvsBufferPtr; | ||||
|  | ||||
| /** Offset 0x0164 | ||||
| **/ | ||||
|   UINT8                       ReservedFspmUpd[4]; | ||||
| } FSP_M_CONFIG; | ||||
|  | ||||
| /** Fsp M Test Configuration | ||||
| **/ | ||||
| typedef struct { | ||||
|  | ||||
| /** Offset 0x0155 | ||||
| /** Offset 0x0168 | ||||
| **/ | ||||
|   UINT32                      Signature; | ||||
|  | ||||
| /** Offset 0x0159 | ||||
| /** Offset 0x016C | ||||
| **/ | ||||
|   UINT8                       ReservedFspmTestUpd[28]; | ||||
|   UINT8                       ReservedFspmTestUpd[18]; | ||||
| } FSP_M_TEST_CONFIG; | ||||
|  | ||||
| /** Fsp M Restricted Configuration | ||||
| **/ | ||||
| typedef struct { | ||||
|  | ||||
| /** Offset 0x0175 | ||||
| /** Offset 0x017E | ||||
| **/ | ||||
|   UINT32                      Signature; | ||||
|  | ||||
| /** Offset 0x0179 | ||||
| /** Offset 0x0182 | ||||
| **/ | ||||
|   UINT8                       ReservedFspmRestrictedUpd[124]; | ||||
| } FSP_M_RESTRICTED_CONFIG; | ||||
| @@ -867,19 +1009,15 @@ typedef struct { | ||||
| **/ | ||||
|   FSP_M_CONFIG                FspmConfig; | ||||
|  | ||||
| /** Offset 0x0155 | ||||
| /** Offset 0x0168 | ||||
| **/ | ||||
|   FSP_M_TEST_CONFIG           FspmTestConfig; | ||||
|  | ||||
| /** Offset 0x0175 | ||||
| /** Offset 0x017E | ||||
| **/ | ||||
|   FSP_M_RESTRICTED_CONFIG     FspmRestrictedConfig; | ||||
|  | ||||
| /** Offset 0x01F5 | ||||
| **/ | ||||
|   UINT8                       UnusedUpdSpace1[14]; | ||||
|  | ||||
| /** Offset 0x0203 | ||||
| /** Offset 0x01FE | ||||
| **/ | ||||
|   UINT16                      UpdTerminator; | ||||
| } FSPM_UPD; | ||||
|   | ||||
| @@ -1522,132 +1522,119 @@ typedef struct { | ||||
| **/ | ||||
|   UINT64                      SgxEpoch1; | ||||
|  | ||||
| /** Offset 0x0343 - Selective enable SGX | ||||
|   Selective enable SGX. 0xFFFF(Default). | ||||
| **/ | ||||
|   UINT16                      SelectiveEnableSgx; | ||||
|  | ||||
| /** Offset 0x0345 - SGX debug mode | ||||
|   Select SGX mode. 0:Disable(default), 1:Enable | ||||
|   0:Disable(default), 1:Enable | ||||
| **/ | ||||
|   UINT8                       SgxDebugMode; | ||||
|  | ||||
| /** Offset 0x0346 - MicrocodePatchAddress | ||||
| /** Offset 0x0343 - MicrocodePatchAddress | ||||
|   MicrocodePatchAddress. 0x0(Default). | ||||
| **/ | ||||
|   UINT64                      MicrocodePatchAddress; | ||||
|  | ||||
| /** Offset 0x034E - SGX Launch Control Policy Mode | ||||
|   Select Launch Control Policy Mode. 0:Intel - Default, 1:Per-boot Select mode(default) | ||||
|   0:Intel - Default, 1:Per-boot Select mode(default) | ||||
| **/ | ||||
|   UINT8                       LcpMode; | ||||
|  | ||||
| /** Offset 0x034F - LE KeyHash0 | ||||
|   LE KeyHash0. 0x0(Default). | ||||
| **/ | ||||
|   UINT64                      SgxLeKeyHash0; | ||||
|  | ||||
| /** Offset 0x0357 - LE KeyHash1 | ||||
|   LE KeyHash1. 0x0(Default). | ||||
| **/ | ||||
|   UINT64                      SgxLeKeyHash1; | ||||
|  | ||||
| /** Offset 0x035F - LE KeyHash2 | ||||
|   LE KeyHash2. 0x0(Default). | ||||
| **/ | ||||
|   UINT64                      SgxLeKeyHash2; | ||||
|  | ||||
| /** Offset 0x0367 - LE KeyHash3 | ||||
|   LE KeyHash3. 0x0(Default). | ||||
| **/ | ||||
|   UINT64                      SgxLeKeyHash3; | ||||
|  | ||||
| /** Offset 0x036F - CNVi Mode | ||||
| /** Offset 0x034B - CNVi Mode | ||||
|   Selects CNVi Mode. 0:Disable, 1:Auto(Default). | ||||
|   $EN_DIS | ||||
| **/ | ||||
|   UINT8                       CnviMode; | ||||
|  | ||||
| /** Offset 0x0370 - BT Interface | ||||
| /** Offset 0x034C - BT Interface | ||||
|   CNVi BT interface. 0:UART, 1:USB(Default). | ||||
|   $EN_DIS | ||||
| **/ | ||||
|   UINT8                       CnviBtInterface; | ||||
|  | ||||
| /** Offset 0x0371 - Disable Sx Wake | ||||
| /** Offset 0x034D - Disable Sx Wake | ||||
|   Enables/Disables wake from Sx . 0:No(Default), 1:Yes. | ||||
|   $EN_DIS | ||||
| **/ | ||||
|   UINT8                       PowerRailMerge; | ||||
|   UINT8                       DisableSxWake; | ||||
|  | ||||
| /** Offset 0x0372 - ModifyCrfGpios | ||||
| /** Offset 0x034E - ModifyCrfGpios | ||||
|   Feature to Configure CRF Gpios Conditionally upon platform requirement, configuration | ||||
|   of GNSS and BtOnUart gpios will/will not be done based on this policy | ||||
|   $EN_DIS | ||||
| **/ | ||||
|   UINT8                       ModifyCrfGpios; | ||||
|  | ||||
| /** Offset 0x0373 -  dGPU Hold Reset | ||||
| /** Offset 0x034F -  dGPU Hold Reset | ||||
|   dGPU Hold Reset GPIO information from GPIO community, Pin and Active | ||||
| **/ | ||||
|   UINT8                       HgDgpuHoldRst[8]; | ||||
|  | ||||
| /** Offset 0x037B - dGPU Power Enable | ||||
| /** Offset 0x0357 - dGPU Power Enable | ||||
|   dGPU power enable GPIO information from GPIO community, Pin and Active | ||||
| **/ | ||||
|   UINT8                       HgDgpuPwrEnable[8]; | ||||
|  | ||||
| /** Offset 0x0383 - dGPU Delay after power enable | ||||
| /** Offset 0x035F - dGPU Delay after power enable | ||||
|   Delay for DGPU after Hold Reset if HG is enable : 0 : Minimum , 1000 : Maximum , | ||||
|   300 : Default | ||||
|   0 : Minimum , 1000 : Maximum , 300 : Default | ||||
| **/ | ||||
|   UINT16                      HgDelayAfterPwrEn; | ||||
|  | ||||
| /** Offset 0x0385 -  dGPU Delay after hold reset | ||||
| /** Offset 0x0361 -  dGPU Delay after hold reset | ||||
|   Delay for DGPU after Hold Reset if HG is enable : 0 : Minimum , 1000 : Maximum , | ||||
|   100 : Default | ||||
|   0 : Minimum , 1000 : Maximum , 100 : Default | ||||
| **/ | ||||
|   UINT16                      HgDelayAfterHoldReset; | ||||
|  | ||||
| /** Offset 0x0387 - HG Enable | ||||
| /** Offset 0x0363 - HG Enable | ||||
|   Enables/Disables Hybrid Graphics . 0 : Disable(Default), 1 : Enable | ||||
|   0x1:Enabled, 0x0:Disabled | ||||
| **/ | ||||
|   UINT8                       HgEnabled; | ||||
|  | ||||
| /** Offset 0x0388 - PAVP ASMF | ||||
| /** Offset 0x0364 - PAVP ASMF | ||||
|   Enable/Disable PAVP ASMF  0:Disable, 1:Enable(Default). | ||||
|   $EN_DIS | ||||
| **/ | ||||
|   UINT8                       PavpAsmf; | ||||
|  | ||||
| /** Offset 0x0389 - CpuS3ResumeMtrrDataSize | ||||
| /** Offset 0x0365 - CpuS3ResumeMtrrDataSize | ||||
|   Size of S3 resume MTRR data. | ||||
| **/ | ||||
|   UINT16                      CpuS3ResumeMtrrDataSize; | ||||
|  | ||||
| /** Offset 0x038B - CpuS3ResumeMtrrData | ||||
| /** Offset 0x0367 - CpuS3ResumeMtrrData | ||||
|   Pointer CPU S3 Resume MTRR Data | ||||
| **/ | ||||
|   UINT32                      CpuS3ResumeMtrrData; | ||||
|  | ||||
| /** Offset 0x038F - PAVP Auto TearDown Grace Period Enable | ||||
| /** Offset 0x036B - PAVP Auto TearDown Grace Period Enable | ||||
|   Enable/Disable PAVP Auto TearDown Grace Period 0:Disable, 1:Enable(Default). | ||||
|   $EN_DIS | ||||
| **/ | ||||
|   UINT8                       AutoTearDownGracePeriod; | ||||
|  | ||||
| /** Offset 0x0390 - SeC EndOfPost EnableDisable | ||||
| /** Offset 0x036C - SeC EndOfPost EnableDisable | ||||
|   Enable/Disable SeC EOPEnable  0:Disable, 1:Enable(Default). | ||||
|   $EN_DIS | ||||
| **/ | ||||
|   UINT8                       EndOfPostEnabled; | ||||
|  | ||||
| /** Offset 0x0391 | ||||
| /** Offset 0x036D - EnableDigitalThermalSensor EnableDisable | ||||
|   Enable/Disable EnableDigitalThermalSensor  0:Disable(Default), 1:Enable. | ||||
|   $EN_DIS | ||||
| **/ | ||||
|   UINT8                       EnableDigitalThermalSensor; | ||||
|  | ||||
| /** Offset 0x036E - PNP Mode | ||||
|   Select PNP Mode. 0:Disable,1:Power,2:Performance,3:Power&Performance | ||||
|   0:Disable,1:Power,2:Performance,3:Power&Performance(default) | ||||
| **/ | ||||
|   UINT8                       PnpSettings; | ||||
|  | ||||
| /** Offset 0x036F - OsBoot EnableDisable | ||||
|   Select OsBoot. 1:EMMC boot, 0:HardDisk boot | ||||
|   1:EMMC boot, 1:HardDisk boot | ||||
| **/ | ||||
|   UINT8                       OsBoot; | ||||
|  | ||||
| /** Offset 0x0370 - AP threads Idle Manner | ||||
|   AP threads Idle Manner for waiting signal to run 1:HALT loop 2:MWAIT loop 3:RUN lOOP | ||||
|   $EN_DIS | ||||
| **/ | ||||
|   UINT8                       ApIdleManner; | ||||
|  | ||||
| /** Offset 0x0371 | ||||
| **/ | ||||
|   UINT8                       ReservedFspsUpd[3]; | ||||
| } FSP_S_CONFIG; | ||||
| @@ -1656,11 +1643,11 @@ typedef struct { | ||||
| **/ | ||||
| typedef struct { | ||||
|  | ||||
| /** Offset 0x0394 | ||||
| /** Offset 0x0374 | ||||
| **/ | ||||
|   UINT32                      Signature; | ||||
|  | ||||
| /** Offset 0x0398 | ||||
| /** Offset 0x0378 | ||||
| **/ | ||||
|   UINT8                       ReservedFspsTestUpd[12]; | ||||
| } FSP_S_TEST_CONFIG; | ||||
| @@ -1669,11 +1656,48 @@ typedef struct { | ||||
| **/ | ||||
| typedef struct { | ||||
|  | ||||
| /** Offset 0x03A4 | ||||
| /** Offset 0x0384 | ||||
| **/ | ||||
|   UINT32                      Signature; | ||||
|  | ||||
| /** Offset 0x03A8 | ||||
| /** Offset 0x0388 - Selective enable SGX | ||||
|   Selective enable SGX. 0xFFFF(Default). | ||||
| **/ | ||||
|   UINT16                      SelectiveEnableSgx; | ||||
|  | ||||
| /** Offset 0x038A - SGX debug mode | ||||
|   Select SGX mode. 0:Disable(default), 1:Enable | ||||
|   0:Disable(default), 1:Enable | ||||
| **/ | ||||
|   UINT8                       SgxDebugMode; | ||||
|  | ||||
| /** Offset 0x038B - SGX Launch Control Policy Mode | ||||
|   Select Launch Control Policy Mode. 0:Intel - Default, 1:Per-boot Select mode(default) | ||||
|   0:Intel locked , 1:Unlocked mode(default) , 2: Locked mode | ||||
| **/ | ||||
|   UINT8                       SgxLcp; | ||||
|  | ||||
| /** Offset 0x038C - LE KeyHash0 | ||||
|   LE KeyHash0. 0x0(Default). | ||||
| **/ | ||||
|   UINT64                      SgxLePubKeyHash0; | ||||
|  | ||||
| /** Offset 0x0394 - LE KeyHash1 | ||||
|   LE KeyHash1. 0x0(Default). | ||||
| **/ | ||||
|   UINT64                      SgxLePubKeyHash1; | ||||
|  | ||||
| /** Offset 0x039C - LE KeyHash2 | ||||
|   LE KeyHash2. 0x0(Default). | ||||
| **/ | ||||
|   UINT64                      SgxLePubKeyHash2; | ||||
|  | ||||
| /** Offset 0x03A4 - LE KeyHash3 | ||||
|   LE KeyHash3. 0x0(Default). | ||||
| **/ | ||||
|   UINT64                      SgxLePubKeyHash3; | ||||
|  | ||||
| /** Offset 0x03AC | ||||
| **/ | ||||
|   UINT8                       ReservedFspsRestrictedUpd[2]; | ||||
| } FSP_S_RESTRICTED_CONFIG; | ||||
| @@ -1690,15 +1714,15 @@ typedef struct { | ||||
| **/ | ||||
|   FSP_S_CONFIG                FspsConfig; | ||||
|  | ||||
| /** Offset 0x0394 | ||||
| /** Offset 0x0374 | ||||
| **/ | ||||
|   FSP_S_TEST_CONFIG           FspsTestConfig; | ||||
|  | ||||
| /** Offset 0x03A4 | ||||
| /** Offset 0x0384 | ||||
| **/ | ||||
|   FSP_S_RESTRICTED_CONFIG     FspsRestrictedConfig; | ||||
|  | ||||
| /** Offset 0x03AA | ||||
| /** Offset 0x03AE | ||||
| **/ | ||||
|   UINT16                      UpdTerminator; | ||||
| } FSPS_UPD; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user