From 79be6da0717ef7b9d7e914386a3a427adfa2df72 Mon Sep 17 00:00:00 2001 From: Ronak Kanabar Date: Thu, 11 Jan 2024 16:14:45 +0530 Subject: vc/intel/fsp: Update ADL N FSP headers from v3343.05 to v5021.00 Update generated FSP headers for Alder Lake N from v5021.00 Changes include: - Add FspProducerDataHeader.h header file - Open Usb4CmMode & CnviWifiCore Upd in FspsUpd.h - Update UPD Offset in FspsUpd.h BUG=b:296433836 TEST=Able to build and boot google/nivviks Change-Id: Ieb4cc8f2f83d8f6e821894f0ec2e56262a25743c Signed-off-by: Ronak Kanabar Reviewed-on: https://review.coreboot.org/c/coreboot/+/82780 Reviewed-by: Subrata Banik Tested-by: build bot (Jenkins) Reviewed-by: Kapil Porwal --- .../fsp/fsp2_0/alderlake_n/FspProducerDataHeader.h | 78 +++++++++++++++ .../intel/fsp/fsp2_0/alderlake_n/FspsUpd.h | 106 +++++++++++---------- 2 files changed, 134 insertions(+), 50 deletions(-) create mode 100644 src/vendorcode/intel/fsp/fsp2_0/alderlake_n/FspProducerDataHeader.h diff --git a/src/vendorcode/intel/fsp/fsp2_0/alderlake_n/FspProducerDataHeader.h b/src/vendorcode/intel/fsp/fsp2_0/alderlake_n/FspProducerDataHeader.h new file mode 100644 index 0000000000..2d75439fcc --- /dev/null +++ b/src/vendorcode/intel/fsp/fsp2_0/alderlake_n/FspProducerDataHeader.h @@ -0,0 +1,78 @@ +/** @file + Copyright (c) 2023, Intel Corporation. All rights reserved.
+ This program and the accompanying materials + are licensed and made available under the terms and conditions of the BSD License + which accompanies this distribution. The full text of the license may be found at + http://opensource.org/licenses/bsd-license.php + THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, + WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. +**/ +#ifndef _FSP_PRODUCER_DATA_HEADER_H_ +#define _FSP_PRODUCER_DATA_HEADER_H_ + +#include + +#define BUILD_TIME_STAMP_SIZE 12 + +// +// FSP Header Data structure from FspHeader driver. +// +#pragma pack(1) +/// +/// FSP Producer Data Subtype - 1 +/// +typedef struct { + /// + /// Byte 0x00: Length of this FSP producer data type record. + /// + UINT16 Length; + /// + /// Byte 0x02: FSP producer data type. + /// + UINT8 Type; + /// + /// Byte 0x03: Revision of this FSP producer data type. + /// + UINT8 Revision; + /// + /// Byte 0x04: 4 byte field of RC version which is used to build this FSP image. + /// + UINT32 RcVersion; + /// + /// Byte 0x08: Represents the build time stamp "YYYYMMDDHHMM". + /// + UINT8 BuildTimeStamp[BUILD_TIME_STAMP_SIZE]; +} FSP_PRODUCER_DATA_TYPE1; + +/// +/// FSP Producer Data Subtype - 2 +/// +typedef struct { + /// + /// Byte 0x00: Length of this FSP producer data type record. + /// + UINT16 Length; + /// + /// Byte 0x02: FSP producer data type. + /// + UINT8 Type; + /// + /// Byte 0x03: Revision of this FSP producer data type. + /// + UINT8 Revision; + /// + /// Byte 0x04: 4 byte field of Mrc version which is used to build this FSP image. + /// + UINT8 MrcVersion [4]; +} FSP_PRODUCER_DATA_TYPE2; + +typedef struct { + FSP_INFO_HEADER FspInfoHeader; + FSP_INFO_EXTENDED_HEADER FspInfoExtendedHeader; + FSP_PRODUCER_DATA_TYPE1 FspProduceDataType1; + FSP_PRODUCER_DATA_TYPE2 FspProduceDataType2; + FSP_PATCH_TABLE FspPatchTable; +} FSP_PRODUCER_DATA_TABLES; +#pragma pack() + +#endif // _FSP_PRODUCER_DATA_HEADER_H diff --git a/src/vendorcode/intel/fsp/fsp2_0/alderlake_n/FspsUpd.h b/src/vendorcode/intel/fsp/fsp2_0/alderlake_n/FspsUpd.h index 02b544a04e..ca9eaefa1f 100644 --- a/src/vendorcode/intel/fsp/fsp2_0/alderlake_n/FspsUpd.h +++ b/src/vendorcode/intel/fsp/fsp2_0/alderlake_n/FspsUpd.h @@ -869,9 +869,11 @@ typedef struct { **/ UINT8 CnviMode; -/** Offset 0x0435 - Reserved +/** Offset 0x0435 - CNVi Wi-Fi Core + Enable/Disable CNVi Wi-Fi Core, Default is ENABLE. 0: DISABLE, 1: ENABLE + $EN_DIS **/ - UINT8 Reserved12; + UINT8 CnviWifiCore; /** Offset 0x0436 - CNVi BT Core Enable/Disable CNVi BT Core, Default is ENABLE. 0: DISABLE, 1: ENABLE @@ -989,7 +991,7 @@ typedef struct { /** Offset 0x0455 - Reserved **/ - UINT8 Reserved13; + UINT8 Reserved12; /** Offset 0x0456 - OS Timer 16 bits Value, Set OS watchdog timer. Setting is invalid if AmtEnabled is 0. @@ -1025,7 +1027,7 @@ typedef struct { /** Offset 0x04AF - Reserved **/ - UINT8 Reserved14; + UINT8 Reserved13; /** Offset 0x04B0 - PCIE RP Detect Timeout Ms The number of milliseconds within 0~65535 in reference code will wait for link to @@ -1136,7 +1138,7 @@ typedef struct { /** Offset 0x0521 - Reserved **/ - UINT8 Reserved15[8]; + UINT8 Reserved14[8]; /** Offset 0x0529 - Enable VMD controller Enable/disable to VMD controller.0: Disable; 1: Enable(Default) @@ -1195,7 +1197,7 @@ typedef struct { /** Offset 0x058D - Reserved **/ - UINT8 Reserved16[3]; + UINT8 Reserved15[3]; /** Offset 0x0590 - VMD Variable VMD Variable Pointer. @@ -1219,7 +1221,7 @@ typedef struct { /** Offset 0x05A0 - Reserved **/ - UINT8 Reserved17; + UINT8 Reserved16; /** Offset 0x05A1 - Enable/Disable PMC-PD Solution This policy will enable/disable PMC-PD Solution vs EC-TCPC Solution @@ -1274,7 +1276,7 @@ typedef struct { /** Offset 0x05B1 - Reserved **/ - UINT8 Reserved18; + UINT8 Reserved17; /** Offset 0x05B2 - ITBT DMA LTR TCSS DMA1, DMA2 LTR value @@ -1283,7 +1285,7 @@ typedef struct { /** Offset 0x05B6 - Reserved **/ - UINT8 Reserved19; + UINT8 Reserved18; /** Offset 0x05B7 - Enable/Disable PTM This policy will enable/disable Precision Time Measurement for TCSS PCIe Root Ports @@ -1308,7 +1310,7 @@ typedef struct { /** Offset 0x05C7 - Reserved **/ - UINT8 Reserved20; + UINT8 Reserved19; /** Offset 0x05C8 - PCIE RP Snoop Latency Override Value Latency Tolerance Reporting, Snoop Latency Override Value. @@ -1360,7 +1362,7 @@ typedef struct { /** Offset 0x05F3 - Reserved **/ - UINT8 Reserved21; + UINT8 Reserved20; /** Offset 0x05F4 - Imon slope correction PCODE MMIO Mailbox: Imon slope correction. Specified in 1/100 increment values. @@ -1387,7 +1389,7 @@ typedef struct { /** Offset 0x0612 - Reserved **/ - UINT8 Reserved22[2]; + UINT8 Reserved21[2]; /** Offset 0x0614 - Thermal Design Current time window PCODE MMIO Mailbox: Thermal Design Current time window. Defined in milli seconds. @@ -1436,7 +1438,7 @@ typedef struct { /** Offset 0x063B - Reserved **/ - UINT8 Reserved23; + UINT8 Reserved22; /** Offset 0x063C - Thermal Design Current current limit PCODE MMIO Mailbox: Thermal Design Current current limit. Specified in 1/8A units. @@ -1505,7 +1507,7 @@ typedef struct { /** Offset 0x0687 - Reserved **/ - UINT8 Reserved24; + UINT8 Reserved23; /** Offset 0x0688 - CpuBistData Pointer CPU BIST Data @@ -1542,7 +1544,7 @@ typedef struct { /** Offset 0x0693 - Reserved **/ - UINT8 Reserved25; + UINT8 Reserved24; /** Offset 0x0694 - VR Voltage Limit PCODE MMIO Mailbox: Voltage Limit. Range is 0 - 7999mV @@ -1557,7 +1559,7 @@ typedef struct { /** Offset 0x06A0 - Reserved **/ - UINT8 Reserved26[7]; + UINT8 Reserved25[7]; /** Offset 0x06A7 - VccIn Aux Imon slope correction PCODE MMIO Mailbox: VccIn Aux Imon slope correction. 0 - Auto Specified in @@ -1567,7 +1569,7 @@ typedef struct { /** Offset 0x06A8 - Reserved **/ - UINT8 Reserved27[2]; + UINT8 Reserved26[2]; /** Offset 0x06AA - FIVR RFI Spread Spectrum Enable or disable Enable or Disable FIVR RFI Spread Spectrum. 0: Disable ; 1: Enable @@ -1576,7 +1578,7 @@ typedef struct { /** Offset 0x06AB - Reserved **/ - UINT8 Reserved28[13]; + UINT8 Reserved27[13]; /** Offset 0x06B8 - PpinSupport to view Protected Processor Inventory Number Enable or Disable or Auto (Based on End of Manufacturing flag. Disabled if this @@ -1599,7 +1601,7 @@ typedef struct { /** Offset 0x06BC - Reserved **/ - UINT8 Reserved29[2]; + UINT8 Reserved28[2]; /** Offset 0x06BE - Min Voltage for C8 PCODE MMIO Mailbox: Minimum voltage for C8. Valid if EnableMinVoltageOverride = @@ -1633,7 +1635,7 @@ typedef struct { /** Offset 0x06C9 - Reserved **/ - UINT8 Reserved30; + UINT8 Reserved29; /** Offset 0x06CA - CPU VR Power Delivery Design Used to communicate the power delivery design capability of the board. This value @@ -1644,7 +1646,7 @@ typedef struct { /** Offset 0x06CB - Reserved **/ - UINT8 Reserved31[32]; + UINT8 Reserved30[32]; /** Offset 0x06EB - Enable Power Optimizer Enable DMI Power Optimizer on PCH side. @@ -1838,7 +1840,7 @@ typedef struct { /** Offset 0x0894 - Reserved **/ - UINT8 Reserved32; + UINT8 Reserved31; /** Offset 0x0895 - Touch Host Controller Port 1 Assignment Assign THC Port 1 @@ -1848,7 +1850,7 @@ typedef struct { /** Offset 0x0896 - Reserved **/ - UINT8 Reserved33[2]; + UINT8 Reserved32[2]; /** Offset 0x0898 - Touch Host Controller Port 1 Interrupt Pin Mux Set THC Port 1 Pin Muxing Value if signal can be enabled on multiple pads. Refer @@ -1858,7 +1860,7 @@ typedef struct { /** Offset 0x089C - Reserved **/ - UINT8 Reserved34; + UINT8 Reserved33; /** Offset 0x089D - PCIE RP Pcie Speed Determines each PCIE Port speed capability. 0: Auto; 1: Gen1; 2: Gen2; 3: Gen3; @@ -1890,7 +1892,7 @@ typedef struct { /** Offset 0x0929 - Reserved **/ - UINT8 Reserved35[28]; + UINT8 Reserved34[28]; /** Offset 0x0945 - PCIE RP Ltr Enable Latency Tolerance Reporting Mechanism. @@ -1948,7 +1950,7 @@ typedef struct { /** Offset 0x09A1 - Reserved **/ - UINT8 Reserved36[3]; + UINT8 Reserved35[3]; /** Offset 0x09A4 - PCIe EQ phase 1 downstream transmitter port preset Allows to select the downstream port preset value that will be used during phase @@ -2226,7 +2228,6 @@ typedef struct { /** Offset 0x0A42 - UFS enable/disable Enable/Disable UFS controller, One byte for each Controller - (1,0) to enable controller 0 and (0,1) to enable controller 1 - $EN_DIS **/ UINT8 UfsEnable[2]; @@ -2238,7 +2239,7 @@ typedef struct { /** Offset 0x0A45 - Reserved **/ - UINT8 Reserved37; + UINT8 Reserved36; /** Offset 0x0A46 - Thermal Throttling Custimized T0Level Value Custimized T0Level value. @@ -2413,7 +2414,7 @@ typedef struct { /** Offset 0x0A6B - Reserved **/ - UINT8 Reserved38; + UINT8 Reserved37; /** Offset 0x0A6C - Thermal Device Temperature Decides the temperature. @@ -2438,7 +2439,7 @@ typedef struct { /** Offset 0x0A89 - Reserved **/ - UINT8 Reserved39[3]; + UINT8 Reserved38[3]; /** Offset 0x0A8C - xHCI High Idle Time LTR override Value used for overriding LTR recommendation for xHCI High Idle Time LTR setting @@ -2488,7 +2489,7 @@ typedef struct { /** Offset 0x0A9C - Reserved **/ - UINT8 Reserved40[4]; + UINT8 Reserved39[4]; /** Offset 0x0AA0 - BgpdtHash[4] BgpdtHash values @@ -2502,7 +2503,7 @@ typedef struct { /** Offset 0x0AC4 - Reserved **/ - UINT8 Reserved41[4]; + UINT8 Reserved40[4]; /** Offset 0x0AC8 - BiosGuardModulePtr BiosGuardModulePtr default values @@ -2535,7 +2536,7 @@ typedef struct { /** Offset 0x0ADB - Reserved **/ - UINT8 Reserved42; + UINT8 Reserved41; /** Offset 0x0ADC - Change Default SVID Change the default SVID used in FSP to programming internal devices. This is only @@ -2635,7 +2636,7 @@ typedef struct { /** Offset 0x0B00 - Reserved **/ - UINT8 Reserved43[12]; + UINT8 Reserved42[12]; /** Offset 0x0B0C - PCIE Eq Ph3 Lane Param Cm CPU_PCIE_EQ_LANE_PARAM. Coefficient C-1. @@ -2728,7 +2729,7 @@ typedef struct { /** Offset 0x0BD1 - Reserved **/ - UINT8 Reserved44[3]; + UINT8 Reserved43[3]; /** Offset 0x0BD4 - CPU PCIE device override table pointer The PCIe device table is being used to override PCIe device ASPM settings. This @@ -3005,7 +3006,7 @@ typedef struct { /** Offset 0x0CA2 - Reserved **/ - UINT8 Reserved45[2]; + UINT8 Reserved44[2]; /** Offset 0x0CA4 - LogoPixelHeight Address Address of LogoPixelHeight @@ -3017,9 +3018,14 @@ typedef struct { **/ UINT32 LogoPixelWidth; -/** Offset 0x0CAC - Reserved +/** Offset 0x0CAC - ITbt Usb4CmMode value + ITbt Usb4CmMode value. 0:Firmware CM, 1:Software CM +**/ + UINT8 Usb4CmMode; + +/** Offset 0x0CAD - Reserved **/ - UINT8 Reserved46[5]; + UINT8 Reserved45[4]; /** Offset 0x0CB1 - RSR feature Enable or Disable RSR feature; 0: Disable; 1: Enable @@ -3029,7 +3035,7 @@ typedef struct { /** Offset 0x0CB2 - Reserved **/ - UINT8 Reserved47[4]; + UINT8 Reserved46[4]; /** Offset 0x0CB6 - Enable or Disable HWP Enable or Disable HWP(Hardware P states) Support. 0: Disable; 1: Enable; @@ -3422,7 +3428,7 @@ typedef struct { /** Offset 0x0D2D - Reserved **/ - UINT8 Reserved48; + UINT8 Reserved47; /** Offset 0x0D2E - Platform Power Pmax PCODE MMIO Mailbox: Platform Power Pmax. 0 - Auto Specified in 1/8 Watt increments. @@ -3462,7 +3468,7 @@ typedef struct { /** Offset 0x0D3A - Reserved **/ - UINT8 Reserved49[2]; + UINT8 Reserved48[2]; /** Offset 0x0D3C - Package Long duration turbo mode power limit Package Long duration turbo mode power limit. Units are based on POWER_MGMT_CONFIG.CustomPowerUnit. @@ -3565,7 +3571,7 @@ typedef struct { /** Offset 0x0D73 - Reserved **/ - UINT8 Reserved50[4]; + UINT8 Reserved49[4]; /** Offset 0x0D77 - Intel Turbo Boost Max Technology 3.0 Intel Turbo Boost Max Technology 3.0. 0: Disabled; 1: Enabled @@ -3637,7 +3643,7 @@ typedef struct { /** Offset 0x0D82 - Reserved **/ - UINT8 Reserved51; + UINT8 Reserved50; /** Offset 0x0D83 - Dual Tau Boost Enable, Disable Dual Tau Boost feature. This is only applicable for Desktop; 0: @@ -3648,7 +3654,7 @@ typedef struct { /** Offset 0x0D84 - Reserved **/ - UINT8 Reserved52[32]; + UINT8 Reserved51[32]; /** Offset 0x0DA4 - End of Post message Test, Send End of Post message. Disable(0x0): Disable EOP message, Send in PEI(0x1): @@ -3697,7 +3703,7 @@ typedef struct { /** Offset 0x0DAB - Reserved **/ - UINT8 Reserved53; + UINT8 Reserved52; /** Offset 0x0DAC - PCIE RP Ltr Max Snoop Latency Latency Tolerance Reporting, Max Snoop Latency. @@ -3849,7 +3855,7 @@ typedef struct { /** Offset 0x0F96 - Reserved **/ - UINT8 Reserved54[16]; + UINT8 Reserved53[16]; /** Offset 0x0FA6 - FOMS Control Policy Choose the Foms Control Policy, Default = 0 @@ -3871,7 +3877,7 @@ typedef struct { /** Offset 0x0FAF - Reserved **/ - UINT8 Reserved55[33]; + UINT8 Reserved54[33]; /** Offset 0x0FD0 - FspEventHandler Optional pointer to the boot loader's implementation of FSP_EVENT_HANDLER. @@ -3898,7 +3904,7 @@ typedef struct { /** Offset 0x0FD7 - Reserved **/ - UINT8 Reserved56; + UINT8 Reserved55; /** Offset 0x0FD8 - Emmc Tx CMD Delay control register value Please see Tx CMD Delay Control register definition for help @@ -3932,7 +3938,7 @@ typedef struct { /** Offset 0x0FF0 - Reserved **/ - UINT8 Reserved57[69]; + UINT8 Reserved56[69]; /** Offset 0x1035 - Enable VMD Global Mapping Enable/disable to VMD controller.0: Disable; 1: Enable(Default) @@ -3942,7 +3948,7 @@ typedef struct { /** Offset 0x1036 - Reserved **/ - UINT8 Reserved58[138]; + UINT8 Reserved57[138]; } FSP_S_CONFIG; /** Fsp S UPD Configuration -- cgit v1.2.3