[coreboot-gerrit] Patch set updated for coreboot: soc/intel/apollolake: Update Upd header files for FSP Label 143_10

Brandon Breitenstein (brandon.breitenstein@intel.com) gerrit at coreboot.org
Tue Jun 28 01:20:18 CEST 2016


Brandon Breitenstein (brandon.breitenstein at intel.com) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/15459

-gerrit

commit b61ea8515c0b9222a146794587f0caeef3ce1a23
Author: Brandon Breitenstein <brandon.breitenstein at intel.com>
Date:   Fri Jun 24 10:41:39 2016 -0700

    soc/intel/apollolake: Update Upd header files for FSP Label 143_10
    
    New UPDs added to header files as well as many comment fixes. Memory
    infor is now defined in FspmUpd.h and added ability to skip CSE RBP
    for coreboot. Removes some UPDs that are no longer available from
    source.
    
    BUG=chrome-os-partner:54677
    BRANCH=none
    TEST=built and tested with FSP 143_10 version
    
    Change-Id: I7e1f531ebbe343b45151a265ac715ae74aeffcad
    Signed-off-by: Brandon Breitenstein <brandon.breitenstein at intel.com>
---
 src/soc/intel/apollolake/chip.c                    |  6 --
 src/soc/intel/apollolake/include/soc/fsp/FspmUpd.h | 47 +++++++++++-
 src/soc/intel/apollolake/include/soc/fsp/FspsUpd.h | 83 +++++++++++-----------
 3 files changed, 85 insertions(+), 51 deletions(-)

diff --git a/src/soc/intel/apollolake/chip.c b/src/soc/intel/apollolake/chip.c
index 821570b..044ef91 100644
--- a/src/soc/intel/apollolake/chip.c
+++ b/src/soc/intel/apollolake/chip.c
@@ -253,12 +253,6 @@ void platform_fsp_silicon_init_params_cb(struct FSPS_UPD *silupd)
 	if (cfg->emmc_rx_cmd_data_cntl2 != 0)
 		silconfig->EmmcRxCmdDataCntl2 = cfg->emmc_rx_cmd_data_cntl2;
 
-	/* Our defaults may not match FSP defaults, so set them explicitly */
-	silconfig->AcpiBase = ACPI_PMIO_BASE;
-	/* First 4k in BAR0 is used for IPC, real registers start at 4k offset */
-	silconfig->PmcBase = PMC_BAR0 + 0x1000;
-	silconfig->P2sbBase = P2SB_BAR;
-
 	silconfig->IshEnable = cfg->integrated_sensor_hub_enable;
 
 	/* Disable setting of EISS bit in FSP. */
diff --git a/src/soc/intel/apollolake/include/soc/fsp/FspmUpd.h b/src/soc/intel/apollolake/include/soc/fsp/FspmUpd.h
index 5f5f367..3eee20b 100644
--- a/src/soc/intel/apollolake/include/soc/fsp/FspmUpd.h
+++ b/src/soc/intel/apollolake/include/soc/fsp/FspmUpd.h
@@ -36,6 +36,42 @@ are permitted provided that the following conditions are met:
 #include "FspUpd.h"
 #include <fsp/upd.h>
 
+#define MAX_CHANNELS_NUM 4
+#define MAX_DIMMS_NUM    1
+
+struct DIMM_INFO {
+  uint8_t         DimmId;
+  uint32_t        SizeInMb;
+  uint16_t        MfgId;
+  /** Module part number for DRR3 is 18 bytes 
+  but DRR4 is 20 bytes as per JEDEC Spec, so 
+  reserving 20 bytes **/
+  uint8_t         ModulePartNum[20];
+} __attribute__((packed));
+
+struct CHANNEL_INFO {
+  uint8_t         ChannelId;
+  uint8_t         DimmCount;
+  struct DIMM_INFO     DimmInfo[MAX_DIMMS_NUM];
+} __attribute__((packed));
+
+struct FSP_SMBIOS_MEMORY_INFO {
+  uint8_t         Revision;
+  uint8_t         DataWidth;
+  /** As defined in SMBIOS 3.0 spec
+    Section 7.18.2 and Table 75
+  **/
+  uint16_t         MemoryType;
+  uint16_t        MemoryFrequencyInMHz;
+  /** As defined in SMBIOS 3.0 spec
+    Section 7.17.3 and Table 72
+  **/
+  uint8_t         ErrorCorrectionType;
+  uint8_t         ChannelCount;
+  struct CHANNEL_INFO  ChannelInfo[MAX_CHANNELS_NUM];
+} __attribute__((packed));
+
+
 /** Fsp M Configuration
 **/
 struct FSP_M_CONFIG {
@@ -528,9 +564,16 @@ struct FSP_M_CONFIG {
 **/
   void*                       MrcBootDataPtr;
 
-/** Offset 0x0135
+/** Offset 0x0135 - Skip CSE RBP to support zero sized IBB
+  Enable/Disable skip CSE RBP for bootloader which loads IBB without assistance of
+  CSE. 0x00:Disable(Default), 0x01:Enable.
+  $EN_DIS
+**/
+  uint8_t                       SkipCseRbp;
+
+/** Offset 0x0136
 **/
-  uint8_t                       ReservedFspmUpd[27];
+  uint8_t                       ReservedFspmUpd[26];
 } __attribute__((packed));
 
 /** Fsp M Test Configuration
diff --git a/src/soc/intel/apollolake/include/soc/fsp/FspsUpd.h b/src/soc/intel/apollolake/include/soc/fsp/FspsUpd.h
index d4ecd36..8dd824b 100644
--- a/src/soc/intel/apollolake/include/soc/fsp/FspsUpd.h
+++ b/src/soc/intel/apollolake/include/soc/fsp/FspsUpd.h
@@ -587,10 +587,9 @@ struct FSP_S_CONFIG {
 **/
   uint8_t                       HpetFunctionNumber;
 
-/** Offset 0x00AF - Hpet Base Address
-  Hpet Base Address. 0xFED00000(Default).
+/** Offset 0x00AF
 **/
-  uint32_t                      HpetBase;
+  uint32_t                      UnusedUpdSpace1;
 
 /** Offset 0x00B3 - IoApic Valid BDF Value
   Enable/Disable IoApic Valid BDF Value. 0:Disable(Default), 1:Enable.
@@ -635,7 +634,7 @@ struct FSP_S_CONFIG {
 **/
   uint8_t                       IshEnable;
 
-/** Offset 0x00BB - ISH Controller
+/** Offset 0x00BB - BIOS Interface Lock Down
   Enable/Disable BIOS Interface Lock Down bit to prevent writes to the Backup Control
   Register. 0:Disable, 1:Enable(Default).
   $EN_DIS
@@ -663,7 +662,7 @@ struct FSP_S_CONFIG {
   Enable/Disable LPSS IOSF Bridge PMCTL Register S0ix Bits. 0:Disable(Default), 1:Enable.
   $EN_DIS
 **/
-  uint8_t                       S0ixEnable;
+  uint8_t                       LPSS_S0ixEnable;
 
 /** Offset 0x00C0 - LPSS I2C Clock Gating Configuration
   Enable/Disable LPSS I2C Clock Gating. 0:Disable, 1:Enable(Default).
@@ -770,8 +769,8 @@ struct FSP_S_CONFIG {
 **/
   uint8_t                       Spi2Enable;
 
-/** Offset 0x00DE - UART Debug Bass Address
-  UART Debug Bass Address. 0x00000000(Default).
+/** Offset 0x00DE - UART Debug Base Address
+  UART Debug Base Address. 0x00000000(Default).
 **/
   uint32_t                      Uart2KernelDebugBaseAddress;
 
@@ -810,7 +809,7 @@ struct FSP_S_CONFIG {
 **/
   uint8_t                       PcieRootPortPeerMemoryWriteEnable;
 
-/** Offset 0x00E8 - PCIE SWSMI Nubmer
+/** Offset 0x00E8 - PCIE SWSMI Number
   This member describes the SwSmi value for override PCIe ASPM table. 0xAA(Default).
 **/
   uint8_t                       PcieAspmSwSmiNumber;
@@ -932,7 +931,7 @@ struct FSP_S_CONFIG {
   uint8_t                       PcieRpCompletionTimeout[6];
 
 /** Offset 0x0173 - PTM Support
-  Enable/Diable PTM Support. 0:Disable(Default), 1:Enable.
+  Enable/Disable PTM Support. 0:Disable(Default), 1:Enable.
 **/
   uint8_t                       PtmEnable[6];
 
@@ -957,7 +956,7 @@ struct FSP_S_CONFIG {
 **/
   uint8_t                       PcieRpLtrConfigLock[6];
 
-/** Offset 0x0191 - PME_B0_S5 Diable bit
+/** Offset 0x0191 - PME_B0_S5 Disable bit
   PME_B0_S5_DIS bit in the General PM Configuration B (GEN_PMCON_B) register. 0:Disable(Default), 1:Enable.
   $EN_DIS
 **/
@@ -1029,8 +1028,8 @@ struct FSP_S_CONFIG {
   uint8_t                       SataPortsHotPlug[2];
 
 /** Offset 0x01A0 - Mechanical Presence Switch
-  Controls reporting if this port has an Mechanical Presence Switch.\nNote:Requires
-  hardware support.  0:Disable, 1:Enable(Default).
+  Controls reporting if this port has an Mechanical Presence Switch.\n
+  Note:Requires hardware support.  0:Disable, 1:Enable(Default).
 **/
   uint8_t                       SataPortsInterlockSw[2];
 
@@ -1075,20 +1074,9 @@ struct FSP_S_CONFIG {
 **/
   uint16_t                      SubSystemId;
 
-/** Offset 0x01B4 - PM Base Address
-  PM Base Address. 0x400(Default).
+/** Offset 0x01B4
 **/
-  uint16_t                      AcpiBase;
-
-/** Offset 0x01B6 - PMC Base Address
-  PMC Base Address. 0xD10010000(Default).
-**/
-  uint32_t                      PmcBase;
-
-/** Offset 0x01BA - P2SB Base Address
-  P2SB Base Address. 0xD0000000(Default).
-**/
-  uint32_t                      P2sbBase;
+  uint8_t                       UnusedUpdSpace2[10];
 
 /** Offset 0x01BE - CRIDSettings
   PMC CRID setting. 0:Disable(Default), 1:CRID_1, 2:CRID_2, 3:CRID_3.
@@ -1150,7 +1138,7 @@ struct FSP_S_CONFIG {
 
 /** Offset 0x01C8 - Start Frame Pulse Width
   Start Frame Pulse Width Value. 0:ScSfpw4Clk(Default), 1: ScSfpw6Clk, 2:ScSfpw8Clk.
-  $EN_DIS
+  0:ScSfpw4Clk, 1:ScSfpw6Clk, 2:ScSfpw8Clk
 **/
   uint8_t                       StartFramePulse;
 
@@ -1166,10 +1154,9 @@ struct FSP_S_CONFIG {
 **/
   uint8_t                       ArpEnable;
 
-/** Offset 0x01CB - SMBus Base Address (IO space)
-  SMBUS Base Address (IO space). 0xEFA0(Default).
+/** Offset 0x01CB
 **/
-  uint16_t                      SmbusIoBase;
+  uint16_t                      UnusedUpdSpace3;
 
 /** Offset 0x01CD - SMBus Table Elements
   The number of elements in the Reserved SMBus Address Table. 0x0080(Default).
@@ -1189,14 +1176,14 @@ struct FSP_S_CONFIG {
   uint8_t                       DisableComplianceMode;
 
 /** Offset 0x0250 - USB Per-Port Control
-  Control each of the USB ports (0~3) enable/disable. 0:Disable(Default), 1:Enable.
+  Control each of the USB ports enable/disable. 0:Disable(Default), 1:Enable.
   $EN_DIS
 **/
   uint8_t                       UsbPerPortCtl;
 
 /** Offset 0x0251 - xHCI Mode
-  Mode of operation of xHCI controller. 0:Disable, 1:Enable, 2:Auto(Default), 3:SmartAuto.
-  $EN_DIS
+  Mode of operation of xHCI controller. 0:Disable, 1:Enable, 2:Auto(Default)
+  0:Disable, 1:Enable, 2:Auto
 **/
   uint8_t                       Usb30Mode;
 
@@ -1224,7 +1211,7 @@ struct FSP_S_CONFIG {
 
 /** Offset 0x026E - XDCI Support
   Enable/Disable XDCI. 0:Disable, 1:PCI_Mode(Default), 2:ACPI_mode.
-  $EN_DIS
+  0:Disable, 1:PCI_Mode, 2:ACPI_mode
 **/
   uint8_t                       UsbOtg;
 
@@ -1293,8 +1280,10 @@ struct FSP_S_CONFIG {
   uint16_t                      PcieRpLtrMaxSnoopLatency[6];
 
 /** Offset 0x028A -   Snoop Latency Override
-  Snoop Latency Override for PCH PCIE. \nDisabled:Disable override.\nManual:Manually
-  enter override values.\nAuto:Maintain default BIOS flow. 0:Disable, 1:Enable, 2:Auto(Default).
+  Snoop Latency Override for PCH PCIE. \n
+  Disabled:Disable override.\n
+  Manual:Manually enter override values.\n
+  Auto:Maintain default BIOS flow. 0:Disable, 1:Enable, 2:Auto(Default).
 **/
   uint8_t                       PcieRpSnoopLatencyOverrideMode[6];
 
@@ -1315,9 +1304,10 @@ struct FSP_S_CONFIG {
   uint16_t                      PcieRpLtrMaxNonSnoopLatency[6];
 
 /** Offset 0x02AE -   Non Snoop Latency Override
-  Non Snoop Latency Override for PCH PCIE. \nDisabled:Disable override.\nManual:Manually
-  enter override values.\nAuto: Maintain default BIOS flow. 0:Disable, 1:Enable,
-  2:Auto(Default).
+  Non Snoop Latency Override for PCH PCIE. \n
+  Disabled:Disable override.\n
+  Manual:Manually enter override values.\n
+  Auto: Maintain default BIOS flow. 0:Disable, 1:Enable, 2:Auto(Default).
 **/
   uint8_t                       PcieRpNonSnoopLatencyOverrideMode[6];
 
@@ -1361,7 +1351,7 @@ struct FSP_S_CONFIG {
 **/
   uint8_t                       TcoTimerHaltLock;
 
-/** Offset 0x02D5 - Power Button Override Peroid
+/** Offset 0x02D5 - Power Button Override Period
   specifies how long will PMC wait before initiating a global reset. 000b-4s(default),
   001b-6s, 010b-8s, 011b-10s, 100b-12s, 101b-14s.)
   0x0:4s, 0x1:6s, 0x2:8s, 0x3:10s, 0x4:12s, 0x5:14s
@@ -1369,7 +1359,7 @@ struct FSP_S_CONFIG {
   uint8_t                       PwrBtnOverridePeriod;
 
 /** Offset 0x02D6 - Power Button Native Mode Disable
-  Diable power button native mode, when 1, this will result in the PMC logic constantly
+  Disable power button native mode, when 1, this will result in the PMC logic constantly
   seeing the power button as de-asserted. 0 (default))
   $EN_DIS
 **/
@@ -1479,13 +1469,20 @@ struct FSP_S_CONFIG {
 
 /** Offset 0x0326 - Os Selection Mode
   Select OS mode. 0:Windows(default), 1:Android, 2:Win7
-  $EN_DIS
+  0:Windows, 1:Android, 2:Win7
 **/
   uint8_t                       OsSelection;
 
-/** Offset 0x0327
+/** Offset 0x0327 - Monitor Mwait Enable
+  Enable/Disable Monitor Mwait. For Windows* OS, this should be Enabled. For Linux
+  based OS, this should be Disabled. 0:Disable, 1:Enable(Default).
+  $EN_DIS
+**/
+  uint8_t                       MonitorMwaitEnable;
+
+/** Offset 0x0328
 **/
-  uint8_t                       ReservedFspsUpd[9];
+  uint8_t                       ReservedFspsUpd[8];
 } __attribute__((packed));
 
 /** Fsp S Test Configuration



More information about the coreboot-gerrit mailing list