<p>Richard Spiegel has uploaded this change for <strong>review</strong>.</p><p><a href="https://review.coreboot.org/28088">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">vendorcode/amd/pi/00670F00/Proc/Fch/Common: Remove VENDORCODE_FULL_SUPPORT<br><br>Remove VENDORCODE_FULL_SUPPORT from files FchLib.c and FchPeLib.c.<br><br>BUG=b:112578491<br>TEST=none, VENDORCODE_FULL_SUPPORT already not used.<br><br>Change-Id: If24eb7f005720a62a1280fe78ddb54c9d2690150<br>Signed-off-by: Richard Spiegel <richard.spiegel@silverbackltd.com><br>---<br>M src/vendorcode/amd/pi/00670F00/Proc/Fch/Common/FchLib.c<br>M src/vendorcode/amd/pi/00670F00/Proc/Fch/Common/FchPeLib.c<br>2 files changed, 0 insertions(+), 915 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://review.coreboot.org:29418/coreboot refs/changes/88/28088/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/vendorcode/amd/pi/00670F00/Proc/Fch/Common/FchLib.c b/src/vendorcode/amd/pi/00670F00/Proc/Fch/Common/FchLib.c</span><br><span>index 2c2b688..01ae71e 100644</span><br><span>--- a/src/vendorcode/amd/pi/00670F00/Proc/Fch/Common/FchLib.c</span><br><span>+++ b/src/vendorcode/amd/pi/00670F00/Proc/Fch/Common/FchLib.c</span><br><span>@@ -77,535 +77,3 @@</span><br><span>   }</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-#if IS_ENABLED(CONFIG_VENDORCODE_FULL_SUPPORT)</span><br><span style="color: hsl(0, 100%, 40%);">-/**< cimFchStall - Reserved  */</span><br><span style="color: hsl(0, 100%, 40%);">-VOID</span><br><span style="color: hsl(0, 100%, 40%);">-CimFchStall (</span><br><span style="color: hsl(0, 100%, 40%);">-  IN       UINT32              uSec,</span><br><span style="color: hsl(0, 100%, 40%);">-  IN       AMD_CONFIG_PARAMS   *StdHeader</span><br><span style="color: hsl(0, 100%, 40%);">-  )</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">-  UINT16 timerAddr;</span><br><span style="color: hsl(0, 100%, 40%);">-  UINT32 startTime;</span><br><span style="color: hsl(0, 100%, 40%);">-  UINT32 elapsedTime;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  LibAmdMemRead (AccessWidth16, (UINT64) (ACPI_MMIO_BASE + PMIO_BASE + FCH_PMIOA_REG64), &timerAddr, StdHeader);</span><br><span style="color: hsl(0, 100%, 40%);">-  if ( timerAddr == 0 ) {</span><br><span style="color: hsl(0, 100%, 40%);">-    uSec = uSec / 2;</span><br><span style="color: hsl(0, 100%, 40%);">-    while ( uSec != 0 ) {</span><br><span style="color: hsl(0, 100%, 40%);">-      LibAmdIoRead (AccessWidth8, FCHOEM_IO_DELAY_PORT, (UINT8*)&elapsedTime, StdHeader);</span><br><span style="color: hsl(0, 100%, 40%);">-      uSec--;</span><br><span style="color: hsl(0, 100%, 40%);">-    }</span><br><span style="color: hsl(0, 100%, 40%);">-  } else {</span><br><span style="color: hsl(0, 100%, 40%);">-    LibAmdIoRead (AccessWidth32, timerAddr, &startTime, StdHeader);</span><br><span style="color: hsl(0, 100%, 40%);">-    for ( ;; ) {</span><br><span style="color: hsl(0, 100%, 40%);">-      LibAmdIoRead (AccessWidth32, timerAddr, &elapsedTime, StdHeader);</span><br><span style="color: hsl(0, 100%, 40%);">-      if ( elapsedTime < startTime ) {</span><br><span style="color: hsl(0, 100%, 40%);">-        elapsedTime = elapsedTime + FCH_MAX_TIMER - startTime;</span><br><span style="color: hsl(0, 100%, 40%);">-      } else {</span><br><span style="color: hsl(0, 100%, 40%);">-        elapsedTime = elapsedTime - startTime;</span><br><span style="color: hsl(0, 100%, 40%);">-      }</span><br><span style="color: hsl(0, 100%, 40%);">-      if ( (elapsedTime * FCHOEM_ELAPSED_TIME_UNIT / FCHOEM_ELAPSED_TIME_DIVIDER) > uSec ) {</span><br><span style="color: hsl(0, 100%, 40%);">-        break;</span><br><span style="color: hsl(0, 100%, 40%);">-      }</span><br><span style="color: hsl(0, 100%, 40%);">-    }</span><br><span style="color: hsl(0, 100%, 40%);">-  }</span><br><span style="color: hsl(0, 100%, 40%);">-}</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-/**< FchReset - Reserved  */</span><br><span style="color: hsl(0, 100%, 40%);">-VOID</span><br><span style="color: hsl(0, 100%, 40%);">-FchPciReset (</span><br><span style="color: hsl(0, 100%, 40%);">-  IN       AMD_CONFIG_PARAMS   *StdHeader</span><br><span style="color: hsl(0, 100%, 40%);">-  )</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">-  UINT8   PciRstValue;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  PciRstValue = 0x06;</span><br><span style="color: hsl(0, 100%, 40%);">-  LibAmdIoWrite (AccessWidth8, FCH_PCIRST_BASE_IO, &PciRstValue, StdHeader);</span><br><span style="color: hsl(0, 100%, 40%);">-}</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-/**< outPort80 - Reserved  */</span><br><span style="color: hsl(0, 100%, 40%);">-VOID</span><br><span style="color: hsl(0, 100%, 40%);">-OutPort80 (</span><br><span style="color: hsl(0, 100%, 40%);">-  IN       UINT32              pcode,</span><br><span style="color: hsl(0, 100%, 40%);">-  IN       AMD_CONFIG_PARAMS   *StdHeader</span><br><span style="color: hsl(0, 100%, 40%);">-  )</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">-  LibAmdIoWrite (AccessWidth8, FCHOEM_OUTPUT_DEBUG_PORT, &pcode, StdHeader);</span><br><span style="color: hsl(0, 100%, 40%);">-  return;</span><br><span style="color: hsl(0, 100%, 40%);">-}</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-/**< outPort1080 - Reserved  */</span><br><span style="color: hsl(0, 100%, 40%);">-VOID</span><br><span style="color: hsl(0, 100%, 40%);">-OutPort1080 (</span><br><span style="color: hsl(0, 100%, 40%);">-  IN       UINT32              pcode,</span><br><span style="color: hsl(0, 100%, 40%);">-  IN       AMD_CONFIG_PARAMS   *StdHeader</span><br><span style="color: hsl(0, 100%, 40%);">-  )</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">-  LibAmdIoWrite (AccessWidth32, 0x1080, &pcode, StdHeader);</span><br><span style="color: hsl(0, 100%, 40%);">-  return;</span><br><span style="color: hsl(0, 100%, 40%);">-}</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-/**< FchCopyMem - Reserved  */</span><br><span style="color: hsl(0, 100%, 40%);">-VOID</span><br><span style="color: hsl(0, 100%, 40%);">-FchCopyMem (</span><br><span style="color: hsl(0, 100%, 40%);">-  IN      VOID*   pDest,</span><br><span style="color: hsl(0, 100%, 40%);">-  IN      VOID*   pSource,</span><br><span style="color: hsl(0, 100%, 40%);">-  IN      UINTN   Length</span><br><span style="color: hsl(0, 100%, 40%);">-  )</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">-  UINTN  i;</span><br><span style="color: hsl(0, 100%, 40%);">-  UINT8  *Ptr;</span><br><span style="color: hsl(0, 100%, 40%);">-  UINT8  *Source;</span><br><span style="color: hsl(0, 100%, 40%);">-  Ptr = (UINT8*)pDest;</span><br><span style="color: hsl(0, 100%, 40%);">-  Source = (UINT8*)pSource;</span><br><span style="color: hsl(0, 100%, 40%);">-  for (i = 0; i < Length; i++) {</span><br><span style="color: hsl(0, 100%, 40%);">-    *Ptr = *Source;</span><br><span style="color: hsl(0, 100%, 40%);">-    Source++;</span><br><span style="color: hsl(0, 100%, 40%);">-    Ptr++;</span><br><span style="color: hsl(0, 100%, 40%);">-  }</span><br><span style="color: hsl(0, 100%, 40%);">-}</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-/** GetRomSigPtr - Reserved **/</span><br><span style="color: hsl(0, 100%, 40%);">-VOID*</span><br><span style="color: hsl(0, 100%, 40%);">-GetRomSigPtr (</span><br><span style="color: hsl(0, 100%, 40%);">-  IN      UINTN               *RomSigPtr,</span><br><span style="color: hsl(0, 100%, 40%);">-  IN      AMD_CONFIG_PARAMS   *StdHeader</span><br><span style="color: hsl(0, 100%, 40%);">-  )</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">-  UINT32   RomPtr;</span><br><span style="color: hsl(0, 100%, 40%);">-  UINT32   RomSig;</span><br><span style="color: hsl(0, 100%, 40%);">-  UINT16   MswAddr;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  *RomSigPtr = 0;</span><br><span style="color: hsl(0, 100%, 40%);">-  MswAddr = 0xFF00;</span><br><span style="color: hsl(0, 100%, 40%);">-  do {</span><br><span style="color: hsl(0, 100%, 40%);">-    RomPtr = (MswAddr << 16) + FCH_ROMSIG_BASE_IO;</span><br><span style="color: hsl(0, 100%, 40%);">-    LibAmdMemRead (AccessWidth32, (UINT64) RomPtr, &RomSig, StdHeader);</span><br><span style="color: hsl(0, 100%, 40%);">-    if (RomSig == FCH_ROMSIG_SIGNATURE) {</span><br><span style="color: hsl(0, 100%, 40%);">-      *RomSigPtr = RomPtr;</span><br><span style="color: hsl(0, 100%, 40%);">-      break;</span><br><span style="color: hsl(0, 100%, 40%);">-    }</span><br><span style="color: hsl(0, 100%, 40%);">-    MswAddr >>= 1;</span><br><span style="color: hsl(0, 100%, 40%);">-    MswAddr |= BIT15;</span><br><span style="color: hsl(0, 100%, 40%);">-  } while (MswAddr != 0xFFF8);</span><br><span style="color: hsl(0, 100%, 40%);">-  return RomSigPtr;</span><br><span style="color: hsl(0, 100%, 40%);">-}</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-/** ReadXhci0Phy - Reserved **/</span><br><span style="color: hsl(0, 100%, 40%);">-VOID</span><br><span style="color: hsl(0, 100%, 40%);">-ReadXhci0Phy (</span><br><span style="color: hsl(0, 100%, 40%);">-  IN       UINT32              Port,</span><br><span style="color: hsl(0, 100%, 40%);">-  IN       UINT32              Address,</span><br><span style="color: hsl(0, 100%, 40%);">-  IN       UINT32              *Value,</span><br><span style="color: hsl(0, 100%, 40%);">-  IN       AMD_CONFIG_PARAMS   *StdHeader</span><br><span style="color: hsl(0, 100%, 40%);">-  )</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">-  UINT32    RegIndex;</span><br><span style="color: hsl(0, 100%, 40%);">-  UINT32    RegValue;</span><br><span style="color: hsl(0, 100%, 40%);">-  PCI_ADDR  PciAddress;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  RwXhci0IndReg ( FCH_XHCI_IND60_REG00, 0xFFFFC000, (Port << 13) + BIT12 + Address, StdHeader);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  RegIndex = FCH_XHCI_IND60_REG04;</span><br><span style="color: hsl(0, 100%, 40%);">-  PciAddress.AddressValue = (USB_XHCI_BUS_DEV_FUN << 12) + 0x48;</span><br><span style="color: hsl(0, 100%, 40%);">-  LibAmdPciWrite (AccessWidth32, PciAddress, &RegIndex, StdHeader);</span><br><span style="color: hsl(0, 100%, 40%);">-  PciAddress.AddressValue = (USB_XHCI_BUS_DEV_FUN << 12) + 0x4C;</span><br><span style="color: hsl(0, 100%, 40%);">-  LibAmdPciRead (AccessWidth32, PciAddress, &RegValue, StdHeader);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  (*Value) = ( RegValue >> (Port * 8)) & 0x000000FF;</span><br><span style="color: hsl(0, 100%, 40%);">-}</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-/** ReadXhci1Phy - Reserved **/</span><br><span style="color: hsl(0, 100%, 40%);">-VOID</span><br><span style="color: hsl(0, 100%, 40%);">-ReadXhci1Phy (</span><br><span style="color: hsl(0, 100%, 40%);">-  IN       UINT32              Port,</span><br><span style="color: hsl(0, 100%, 40%);">-  IN       UINT32              Address,</span><br><span style="color: hsl(0, 100%, 40%);">-  IN       UINT32              *Value,</span><br><span style="color: hsl(0, 100%, 40%);">-  IN       AMD_CONFIG_PARAMS   *StdHeader</span><br><span style="color: hsl(0, 100%, 40%);">-  )</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">-  UINT32    RegIndex;</span><br><span style="color: hsl(0, 100%, 40%);">-  UINT32    RegValue;</span><br><span style="color: hsl(0, 100%, 40%);">-  PCI_ADDR  PciAddress;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  RwXhci1IndReg ( FCH_XHCI_IND60_REG00, 0xFFFFC000, (Port << 13) + BIT12 + Address, StdHeader);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  RegIndex = FCH_XHCI_IND60_REG04;</span><br><span style="color: hsl(0, 100%, 40%);">-  PciAddress.AddressValue = (USB_XHCI1_BUS_DEV_FUN << 12) + 0x48;</span><br><span style="color: hsl(0, 100%, 40%);">-  LibAmdPciWrite (AccessWidth32, PciAddress, &RegIndex, StdHeader);</span><br><span style="color: hsl(0, 100%, 40%);">-  PciAddress.AddressValue = (USB_XHCI1_BUS_DEV_FUN << 12) + 0x4C;</span><br><span style="color: hsl(0, 100%, 40%);">-  LibAmdPciRead (AccessWidth32, PciAddress, &RegValue, StdHeader);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  (*Value) = ( RegValue >> (Port * 8)) & 0x000000FF;</span><br><span style="color: hsl(0, 100%, 40%);">-}</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-/** AcLossControl - Reserved **/</span><br><span style="color: hsl(0, 100%, 40%);">-VOID</span><br><span style="color: hsl(0, 100%, 40%);">-AcLossControl (</span><br><span style="color: hsl(0, 100%, 40%);">-  IN       UINT8 AcLossControlValue</span><br><span style="color: hsl(0, 100%, 40%);">-  )</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">-  AcLossControlValue &= 0x03;</span><br><span style="color: hsl(0, 100%, 40%);">-  AcLossControlValue |= BIT2;</span><br><span style="color: hsl(0, 100%, 40%);">-  RwMem (ACPI_MMIO_BASE + PMIO_BASE + FCH_PMIOA_REG5B, AccessWidth8, 0xF0, AcLossControlValue);</span><br><span style="color: hsl(0, 100%, 40%);">-}</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-/** RecordFchConfigPtr - Reserved **/</span><br><span style="color: hsl(0, 100%, 40%);">-VOID</span><br><span style="color: hsl(0, 100%, 40%);">-RecordFchConfigPtr (</span><br><span style="color: hsl(0, 100%, 40%);">-  IN       UINT32 FchConfigPtr</span><br><span style="color: hsl(0, 100%, 40%);">-  )</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">-  RwMem (ACPI_MMIO_BASE + CMOS_RAM_BASE + 0x08, AccessWidth8, 0, (UINT8) ((FchConfigPtr >> 0) & 0xFF) );</span><br><span style="color: hsl(0, 100%, 40%);">-  RwMem (ACPI_MMIO_BASE + CMOS_RAM_BASE + 0x09, AccessWidth8, 0, (UINT8) ((FchConfigPtr >> 8) & 0xFF) );</span><br><span style="color: hsl(0, 100%, 40%);">-  RwMem (ACPI_MMIO_BASE + CMOS_RAM_BASE + 0x0A, AccessWidth8, 0, (UINT8) ((FchConfigPtr >> 16) & 0xFF) );</span><br><span style="color: hsl(0, 100%, 40%);">-  RwMem (ACPI_MMIO_BASE + CMOS_RAM_BASE + 0x0B, AccessWidth8, 0, (UINT8) ((FchConfigPtr >> 24) & 0xFF) );</span><br><span style="color: hsl(0, 100%, 40%);">-}</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-/** ReadAlink - Reserved **/</span><br><span style="color: hsl(0, 100%, 40%);">-UINT32</span><br><span style="color: hsl(0, 100%, 40%);">-ReadAlink (</span><br><span style="color: hsl(0, 100%, 40%);">-  IN       UINT32              Index,</span><br><span style="color: hsl(0, 100%, 40%);">-  IN       AMD_CONFIG_PARAMS   *StdHeader</span><br><span style="color: hsl(0, 100%, 40%);">-  )</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">-  UINT32 Data;</span><br><span style="color: hsl(0, 100%, 40%);">-  LibAmdIoWrite (AccessWidth32, ALINK_ACCESS_INDEX, &Index, StdHeader);</span><br><span style="color: hsl(0, 100%, 40%);">-  LibAmdIoRead (AccessWidth32, ALINK_ACCESS_DATA, &Data, StdHeader);</span><br><span style="color: hsl(0, 100%, 40%);">-  //Clear Index</span><br><span style="color: hsl(0, 100%, 40%);">-  Index = 0;</span><br><span style="color: hsl(0, 100%, 40%);">-  LibAmdIoWrite (AccessWidth32, ALINK_ACCESS_INDEX, &Index, StdHeader);</span><br><span style="color: hsl(0, 100%, 40%);">-  return Data;</span><br><span style="color: hsl(0, 100%, 40%);">-}</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-/** WriteAlink - Reserved **/</span><br><span style="color: hsl(0, 100%, 40%);">-VOID</span><br><span style="color: hsl(0, 100%, 40%);">-WriteAlink (</span><br><span style="color: hsl(0, 100%, 40%);">-  IN       UINT32              Index,</span><br><span style="color: hsl(0, 100%, 40%);">-  IN       UINT32              Data,</span><br><span style="color: hsl(0, 100%, 40%);">-  IN       AMD_CONFIG_PARAMS   *StdHeader</span><br><span style="color: hsl(0, 100%, 40%);">-  )</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">-  LibAmdIoWrite (AccessWidth32, ALINK_ACCESS_INDEX, &Index, StdHeader);</span><br><span style="color: hsl(0, 100%, 40%);">-  LibAmdIoWrite (AccessWidth32, ALINK_ACCESS_DATA, &Data, StdHeader);</span><br><span style="color: hsl(0, 100%, 40%);">-  //Clear Index</span><br><span style="color: hsl(0, 100%, 40%);">-  Index = 0;</span><br><span style="color: hsl(0, 100%, 40%);">-  LibAmdIoWrite (AccessWidth32, ALINK_ACCESS_INDEX, &Index, StdHeader);</span><br><span style="color: hsl(0, 100%, 40%);">-}</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-/** RwAlink - Reserved **/</span><br><span style="color: hsl(0, 100%, 40%);">-VOID</span><br><span style="color: hsl(0, 100%, 40%);">-RwAlink (</span><br><span style="color: hsl(0, 100%, 40%);">-  IN       UINT32              Index,</span><br><span style="color: hsl(0, 100%, 40%);">-  IN       UINT32              AndMask,</span><br><span style="color: hsl(0, 100%, 40%);">-  IN       UINT32              OrMask,</span><br><span style="color: hsl(0, 100%, 40%);">-  IN       AMD_CONFIG_PARAMS   *StdHeader</span><br><span style="color: hsl(0, 100%, 40%);">-  )</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">-  UINT32 AccessType;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  AccessType = Index & 0xE0000000;</span><br><span style="color: hsl(0, 100%, 40%);">-  if (AccessType == (AXINDC << 29)) {</span><br><span style="color: hsl(0, 100%, 40%);">-    WriteAlink ((FCH_AX_INDXC_REG30 | AccessType), Index & 0x1FFFFFFF, StdHeader);</span><br><span style="color: hsl(0, 100%, 40%);">-    Index = FCH_AX_DATAC_REG34 | AccessType;</span><br><span style="color: hsl(0, 100%, 40%);">-  } else if (AccessType == (AXINDP << 29)) {</span><br><span style="color: hsl(0, 100%, 40%);">-    WriteAlink ((FCH_AX_INDXP_REG38 | AccessType), Index & 0x1FFFFFFF, StdHeader);</span><br><span style="color: hsl(0, 100%, 40%);">-    Index = FCH_AX_DATAP_REG3C | AccessType;</span><br><span style="color: hsl(0, 100%, 40%);">-  }</span><br><span style="color: hsl(0, 100%, 40%);">-  WriteAlink (Index, (ReadAlink (Index, StdHeader) & AndMask) | OrMask, StdHeader);</span><br><span style="color: hsl(0, 100%, 40%);">-}</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-/*----------------------------------------------------------------------------------------*/</span><br><span style="color: hsl(0, 100%, 40%);">-/**</span><br><span style="color: hsl(0, 100%, 40%);">- * Read PMIO</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- * @param[in] Address  - PMIO Offset value</span><br><span style="color: hsl(0, 100%, 40%);">- * @param[in] OpFlag   - Access sizes</span><br><span style="color: hsl(0, 100%, 40%);">- * @param[in] Value    - Read Data Buffer</span><br><span style="color: hsl(0, 100%, 40%);">- * @param[in] StdHeader</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- */</span><br><span style="color: hsl(0, 100%, 40%);">-VOID</span><br><span style="color: hsl(0, 100%, 40%);">-ReadPmio (</span><br><span style="color: hsl(0, 100%, 40%);">-  IN       UINT8               Address,</span><br><span style="color: hsl(0, 100%, 40%);">-  IN       UINT8               OpFlag,</span><br><span style="color: hsl(0, 100%, 40%);">-  IN       VOID                *Value,</span><br><span style="color: hsl(0, 100%, 40%);">-  IN       AMD_CONFIG_PARAMS   *StdHeader</span><br><span style="color: hsl(0, 100%, 40%);">-  )</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">-  UINT8    i;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  OpFlag = OpFlag & 0x7f;</span><br><span style="color: hsl(0, 100%, 40%);">-  OpFlag = 1 << (OpFlag - 1);</span><br><span style="color: hsl(0, 100%, 40%);">-  for (i = 0; i < OpFlag; i++) {</span><br><span style="color: hsl(0, 100%, 40%);">-    LibAmdIoWrite (AccessWidth8, FCH_IOMAP_REGCD6, &Address, StdHeader);</span><br><span style="color: hsl(0, 100%, 40%);">-    Address++;</span><br><span style="color: hsl(0, 100%, 40%);">-    LibAmdIoRead (AccessWidth8, FCH_IOMAP_REGCD7, (UINT8 *)Value + i, StdHeader);</span><br><span style="color: hsl(0, 100%, 40%);">-  }</span><br><span style="color: hsl(0, 100%, 40%);">-}</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-/*----------------------------------------------------------------------------------------*/</span><br><span style="color: hsl(0, 100%, 40%);">-/**</span><br><span style="color: hsl(0, 100%, 40%);">- * Write PMIO</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- * @param[in] Address  - PMIO Offset value</span><br><span style="color: hsl(0, 100%, 40%);">- * @param[in] OpFlag   - Access sizes</span><br><span style="color: hsl(0, 100%, 40%);">- * @param[in] Value    - Write Data Buffer</span><br><span style="color: hsl(0, 100%, 40%);">- * @param[in] StdHeader</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- */</span><br><span style="color: hsl(0, 100%, 40%);">-VOID</span><br><span style="color: hsl(0, 100%, 40%);">-WritePmio (</span><br><span style="color: hsl(0, 100%, 40%);">-  IN       UINT8               Address,</span><br><span style="color: hsl(0, 100%, 40%);">-  IN       UINT8               OpFlag,</span><br><span style="color: hsl(0, 100%, 40%);">-  IN       VOID                *Value,</span><br><span style="color: hsl(0, 100%, 40%);">-  IN       AMD_CONFIG_PARAMS   *StdHeader</span><br><span style="color: hsl(0, 100%, 40%);">-  )</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">-  UINT8    i;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  OpFlag = OpFlag & 0x7f;</span><br><span style="color: hsl(0, 100%, 40%);">-  OpFlag = 1 << (OpFlag - 1);</span><br><span style="color: hsl(0, 100%, 40%);">-  for (i = 0; i < OpFlag; i++) {</span><br><span style="color: hsl(0, 100%, 40%);">-    LibAmdIoWrite (AccessWidth8, FCH_IOMAP_REGCD6, &Address, StdHeader);</span><br><span style="color: hsl(0, 100%, 40%);">-    Address++;</span><br><span style="color: hsl(0, 100%, 40%);">-    LibAmdIoWrite (AccessWidth8, FCH_IOMAP_REGCD7, (UINT8 *)Value + i, StdHeader);</span><br><span style="color: hsl(0, 100%, 40%);">-  }</span><br><span style="color: hsl(0, 100%, 40%);">-}</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-/*----------------------------------------------------------------------------------------*/</span><br><span style="color: hsl(0, 100%, 40%);">-/**</span><br><span style="color: hsl(0, 100%, 40%);">- * RwPmio - Read/Write PMIO</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- * @param[in] Address    - PMIO Offset value</span><br><span style="color: hsl(0, 100%, 40%);">- * @param[in] OpFlag     - Access sizes</span><br><span style="color: hsl(0, 100%, 40%);">- * @param[in] AndMask    - Data And Mask 32 bits</span><br><span style="color: hsl(0, 100%, 40%);">- * @param[in] OrMask     - Data OR Mask 32 bits</span><br><span style="color: hsl(0, 100%, 40%);">- * @param[in] StdHeader</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- */</span><br><span style="color: hsl(0, 100%, 40%);">-VOID</span><br><span style="color: hsl(0, 100%, 40%);">-RwPmio (</span><br><span style="color: hsl(0, 100%, 40%);">-  IN       UINT8               Address,</span><br><span style="color: hsl(0, 100%, 40%);">-  IN       UINT8               OpFlag,</span><br><span style="color: hsl(0, 100%, 40%);">-  IN       UINT32              AndMask,</span><br><span style="color: hsl(0, 100%, 40%);">-  IN       UINT32              OrMask,</span><br><span style="color: hsl(0, 100%, 40%);">-  IN       AMD_CONFIG_PARAMS   *StdHeader</span><br><span style="color: hsl(0, 100%, 40%);">-  )</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">-  UINT32 Result;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  ReadPmio (Address, OpFlag, &Result, StdHeader);</span><br><span style="color: hsl(0, 100%, 40%);">-  Result = (Result & AndMask) | OrMask;</span><br><span style="color: hsl(0, 100%, 40%);">-  WritePmio (Address, OpFlag, &Result, StdHeader);</span><br><span style="color: hsl(0, 100%, 40%);">-}</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-/*----------------------------------------------------------------------------------------*/</span><br><span style="color: hsl(0, 100%, 40%);">-/**</span><br><span style="color: hsl(0, 100%, 40%);">- * Read PMIO2</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- * @param[in] Address  - PMIO2 Offset value</span><br><span style="color: hsl(0, 100%, 40%);">- * @param[in] OpFlag   - Access sizes</span><br><span style="color: hsl(0, 100%, 40%);">- * @param[in] Value    - Read Data Buffer</span><br><span style="color: hsl(0, 100%, 40%);">- * @param[in] StdHeader</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- */</span><br><span style="color: hsl(0, 100%, 40%);">-VOID</span><br><span style="color: hsl(0, 100%, 40%);">-ReadPmio2 (</span><br><span style="color: hsl(0, 100%, 40%);">-  IN       UINT8               Address,</span><br><span style="color: hsl(0, 100%, 40%);">-  IN       UINT8               OpFlag,</span><br><span style="color: hsl(0, 100%, 40%);">-  IN       VOID                *Value,</span><br><span style="color: hsl(0, 100%, 40%);">-  IN       AMD_CONFIG_PARAMS   *StdHeader</span><br><span style="color: hsl(0, 100%, 40%);">-  )</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">-  UINT8 i;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  OpFlag = OpFlag & 0x7f;</span><br><span style="color: hsl(0, 100%, 40%);">-  OpFlag = 1 << (OpFlag - 1);</span><br><span style="color: hsl(0, 100%, 40%);">-  for ( i = 0; i < OpFlag; i++ ) {</span><br><span style="color: hsl(0, 100%, 40%);">-    LibAmdIoWrite (AccessWidth8, FCH_IOMAP_REGCD0, &Address, StdHeader);</span><br><span style="color: hsl(0, 100%, 40%);">-    Address++;</span><br><span style="color: hsl(0, 100%, 40%);">-    LibAmdIoRead (AccessWidth8, FCH_IOMAP_REGCD1, (UINT8 *) Value + i, StdHeader);</span><br><span style="color: hsl(0, 100%, 40%);">-  }</span><br><span style="color: hsl(0, 100%, 40%);">-}</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-/*----------------------------------------------------------------------------------------*/</span><br><span style="color: hsl(0, 100%, 40%);">-/**</span><br><span style="color: hsl(0, 100%, 40%);">- * Write PMIO 2</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- * @param[in] Address  - PMIO2 Offset value</span><br><span style="color: hsl(0, 100%, 40%);">- * @param[in] OpFlag   - Access sizes</span><br><span style="color: hsl(0, 100%, 40%);">- * @param[in] Value    - Write Data Buffer</span><br><span style="color: hsl(0, 100%, 40%);">- * @param[in] StdHeader</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- */</span><br><span style="color: hsl(0, 100%, 40%);">-VOID</span><br><span style="color: hsl(0, 100%, 40%);">-WritePmio2 (</span><br><span style="color: hsl(0, 100%, 40%);">-  IN       UINT8               Address,</span><br><span style="color: hsl(0, 100%, 40%);">-  IN       UINT8               OpFlag,</span><br><span style="color: hsl(0, 100%, 40%);">-  IN       VOID                *Value,</span><br><span style="color: hsl(0, 100%, 40%);">-  IN       AMD_CONFIG_PARAMS   *StdHeader</span><br><span style="color: hsl(0, 100%, 40%);">-  )</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">-  UINT8 i;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  OpFlag = OpFlag & 0x7f;</span><br><span style="color: hsl(0, 100%, 40%);">-  OpFlag = 1 << (OpFlag - 1);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  for ( i = 0; i < OpFlag; i++ ) {</span><br><span style="color: hsl(0, 100%, 40%);">-    LibAmdIoWrite (AccessWidth8, FCH_IOMAP_REGCD0, &Address, StdHeader);</span><br><span style="color: hsl(0, 100%, 40%);">-    Address++;</span><br><span style="color: hsl(0, 100%, 40%);">-    LibAmdIoWrite (AccessWidth8, FCH_IOMAP_REGCD1, (UINT8 *) Value + i, StdHeader);</span><br><span style="color: hsl(0, 100%, 40%);">-  }</span><br><span style="color: hsl(0, 100%, 40%);">-}</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-/*----------------------------------------------------------------------------------------*/</span><br><span style="color: hsl(0, 100%, 40%);">-/**</span><br><span style="color: hsl(0, 100%, 40%);">- * RwPmio2 - Read/Write PMIO2</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- * @param[in] Address    - PMIO2 Offset value</span><br><span style="color: hsl(0, 100%, 40%);">- * @param[in] OpFlag     - Access sizes</span><br><span style="color: hsl(0, 100%, 40%);">- * @param[in] AndMask    - Data And Mask 32 bits</span><br><span style="color: hsl(0, 100%, 40%);">- * @param[in] OrMask     - Data OR Mask 32 bits</span><br><span style="color: hsl(0, 100%, 40%);">- * @param[in] StdHeader</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- */</span><br><span style="color: hsl(0, 100%, 40%);">-VOID</span><br><span style="color: hsl(0, 100%, 40%);">-RwPmio2 (</span><br><span style="color: hsl(0, 100%, 40%);">-  IN       UINT8 Address,</span><br><span style="color: hsl(0, 100%, 40%);">-  IN       UINT8  OpFlag,</span><br><span style="color: hsl(0, 100%, 40%);">-  IN       UINT32 AndMask,</span><br><span style="color: hsl(0, 100%, 40%);">-  IN       UINT32 OrMask,</span><br><span style="color: hsl(0, 100%, 40%);">-  IN       AMD_CONFIG_PARAMS   *StdHeader</span><br><span style="color: hsl(0, 100%, 40%);">-  )</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">-  UINT32 Result;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  ReadPmio2 (Address, OpFlag, &Result, StdHeader);</span><br><span style="color: hsl(0, 100%, 40%);">-  Result = (Result & AndMask) | OrMask;</span><br><span style="color: hsl(0, 100%, 40%);">-  WritePmio2 (Address, OpFlag, &Result, StdHeader);</span><br><span style="color: hsl(0, 100%, 40%);">-}</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-/*----------------------------------------------------------------------------------------*/</span><br><span style="color: hsl(0, 100%, 40%);">-/**</span><br><span style="color: hsl(0, 100%, 40%);">- * Read BIOSRAM</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- * @param[in] Address  - BIOSRAM Offset value</span><br><span style="color: hsl(0, 100%, 40%);">- * @param[in] OpFlag   - Access sizes</span><br><span style="color: hsl(0, 100%, 40%);">- * @param[in] Value    - Read Data Buffer</span><br><span style="color: hsl(0, 100%, 40%);">- * @param[in] StdHeader</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- */</span><br><span style="color: hsl(0, 100%, 40%);">-VOID</span><br><span style="color: hsl(0, 100%, 40%);">-ReadBiosram (</span><br><span style="color: hsl(0, 100%, 40%);">-  IN       UINT8               Address,</span><br><span style="color: hsl(0, 100%, 40%);">-  IN       UINT8               OpFlag,</span><br><span style="color: hsl(0, 100%, 40%);">-  IN       VOID                *Value,</span><br><span style="color: hsl(0, 100%, 40%);">-  IN       AMD_CONFIG_PARAMS   *StdHeader</span><br><span style="color: hsl(0, 100%, 40%);">-  )</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">-  UINT8    i;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  OpFlag = OpFlag & 0x7f;</span><br><span style="color: hsl(0, 100%, 40%);">-  OpFlag = 1 << (OpFlag - 1);</span><br><span style="color: hsl(0, 100%, 40%);">-  for (i = 0; i < OpFlag; i++) {</span><br><span style="color: hsl(0, 100%, 40%);">-    LibAmdIoWrite (AccessWidth8, FCH_IOMAP_REGCD4, &Address, StdHeader);</span><br><span style="color: hsl(0, 100%, 40%);">-    Address++;</span><br><span style="color: hsl(0, 100%, 40%);">-    LibAmdIoRead (AccessWidth8, FCH_IOMAP_REGCD5, (UINT8 *)Value + i, StdHeader);</span><br><span style="color: hsl(0, 100%, 40%);">-  }</span><br><span style="color: hsl(0, 100%, 40%);">-}</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-/*----------------------------------------------------------------------------------------*/</span><br><span style="color: hsl(0, 100%, 40%);">-/**</span><br><span style="color: hsl(0, 100%, 40%);">- * Write BIOSRAM</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- * @param[in] Address  - BIOSRAM Offset value</span><br><span style="color: hsl(0, 100%, 40%);">- * @param[in] OpFlag   - Access sizes</span><br><span style="color: hsl(0, 100%, 40%);">- * @param[in] Value    - Write Data Buffer</span><br><span style="color: hsl(0, 100%, 40%);">- * @param[in] StdHeader</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- */</span><br><span style="color: hsl(0, 100%, 40%);">-VOID</span><br><span style="color: hsl(0, 100%, 40%);">-WriteBiosram (</span><br><span style="color: hsl(0, 100%, 40%);">-  IN       UINT8               Address,</span><br><span style="color: hsl(0, 100%, 40%);">-  IN       UINT8               OpFlag,</span><br><span style="color: hsl(0, 100%, 40%);">-  IN       VOID                *Value,</span><br><span style="color: hsl(0, 100%, 40%);">-  IN       AMD_CONFIG_PARAMS   *StdHeader</span><br><span style="color: hsl(0, 100%, 40%);">-  )</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">-  UINT8    i;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  OpFlag = OpFlag & 0x7f;</span><br><span style="color: hsl(0, 100%, 40%);">-  OpFlag = 1 << (OpFlag - 1);</span><br><span style="color: hsl(0, 100%, 40%);">-  for (i = 0; i < OpFlag; i++) {</span><br><span style="color: hsl(0, 100%, 40%);">-    LibAmdIoWrite (AccessWidth8, FCH_IOMAP_REGCD4, &Address, StdHeader);</span><br><span style="color: hsl(0, 100%, 40%);">-    Address++;</span><br><span style="color: hsl(0, 100%, 40%);">-    LibAmdIoWrite (AccessWidth8, FCH_IOMAP_REGCD5, (UINT8 *)Value + i, StdHeader);</span><br><span style="color: hsl(0, 100%, 40%);">-  }</span><br><span style="color: hsl(0, 100%, 40%);">-}</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-/*----------------------------------------------------------------------------------------*/</span><br><span style="color: hsl(0, 100%, 40%);">-/**</span><br><span style="color: hsl(0, 100%, 40%);">- * Record SMI Status</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- * @param[in] StdHeader</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- */</span><br><span style="color: hsl(0, 100%, 40%);">-VOID</span><br><span style="color: hsl(0, 100%, 40%);">-RecordSmiStatus (</span><br><span style="color: hsl(0, 100%, 40%);">-  IN       AMD_CONFIG_PARAMS   *StdHeader</span><br><span style="color: hsl(0, 100%, 40%);">-  )</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">-  UINTN   Index;</span><br><span style="color: hsl(0, 100%, 40%);">-  UINT8   SwSmiValue;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  ACPIMMIO8 (0xfed80320) |= 0x01;</span><br><span style="color: hsl(0, 100%, 40%);">-  for ( Index = 0; Index < 20; Index++ ) {</span><br><span style="color: hsl(0, 100%, 40%);">-    ACPIMMIO8 (0xfed10020 + Index) = ACPIMMIO8 (0xfed80280 + Index);</span><br><span style="color: hsl(0, 100%, 40%);">-  }</span><br><span style="color: hsl(0, 100%, 40%);">-  LibAmdIoRead (AccessWidth8, 0xB0, &SwSmiValue, StdHeader);</span><br><span style="color: hsl(0, 100%, 40%);">-  ACPIMMIO8 (0xfed10040) = SwSmiValue;</span><br><span style="color: hsl(0, 100%, 40%);">-}</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-/*----------------------------------------------------------------------------------------*/</span><br><span style="color: hsl(0, 100%, 40%);">-/**</span><br><span style="color: hsl(0, 100%, 40%);">- * Clear All SMI Status</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- * @param[in] StdHeader</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- */</span><br><span style="color: hsl(0, 100%, 40%);">-VOID</span><br><span style="color: hsl(0, 100%, 40%);">-ClearAllSmiStatus (</span><br><span style="color: hsl(0, 100%, 40%);">-  IN       AMD_CONFIG_PARAMS   *StdHeader</span><br><span style="color: hsl(0, 100%, 40%);">-  )</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">-  UINTN   Index;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  for ( Index = 0; Index < 20; Index++ ) {</span><br><span style="color: hsl(0, 100%, 40%);">-    ACPIMMIO8 (0xfed80280 + Index) |= 0;</span><br><span style="color: hsl(0, 100%, 40%);">-  }</span><br><span style="color: hsl(0, 100%, 40%);">-}</span><br><span style="color: hsl(0, 100%, 40%);">-#endif /* IS_ENABLED(CONFIG_VENDORCODE_FULL_SUPPORT) */</span><br><span>diff --git a/src/vendorcode/amd/pi/00670F00/Proc/Fch/Common/FchPeLib.c b/src/vendorcode/amd/pi/00670F00/Proc/Fch/Common/FchPeLib.c</span><br><span>index 1df709c..2b70e17 100644</span><br><span>--- a/src/vendorcode/amd/pi/00670F00/Proc/Fch/Common/FchPeLib.c</span><br><span>+++ b/src/vendorcode/amd/pi/00670F00/Proc/Fch/Common/FchPeLib.c</span><br><span>@@ -52,93 +52,6 @@</span><br><span>   */</span><br><span> #define FILECODE PROC_FCH_COMMON_FCHPELIB_FILECODE</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-#if IS_ENABLED(CONFIG_VENDORCODE_FULL_SUPPORT)</span><br><span style="color: hsl(0, 100%, 40%);">-/*----------------------------------------------------------------------------------------*/</span><br><span style="color: hsl(0, 100%, 40%);">-/**</span><br><span style="color: hsl(0, 100%, 40%);">- * ProgramFchSciMapTbl - Program FCH SCI Map table (8 bits data)</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- * @param[in] pSciMapTbl   - Table data pointer</span><br><span style="color: hsl(0, 100%, 40%);">- * @param[in] FchResetDataBlock</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- */</span><br><span style="color: hsl(0, 100%, 40%);">-VOID</span><br><span style="color: hsl(0, 100%, 40%);">-ProgramFchSciMapTbl (</span><br><span style="color: hsl(0, 100%, 40%);">-  IN       SCI_MAP_CONTROL  *pSciMapTbl,</span><br><span style="color: hsl(0, 100%, 40%);">-  IN       FCH_RESET_DATA_BLOCK *FchResetDataBlock</span><br><span style="color: hsl(0, 100%, 40%);">-  )</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">-  AMD_CONFIG_PARAMS   *StdHeader;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  UINT32  ddtempVar;</span><br><span style="color: hsl(0, 100%, 40%);">-  StdHeader = FchResetDataBlock->StdHeader;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  if (pSciMapTbl != NULL) {</span><br><span style="color: hsl(0, 100%, 40%);">-    while (pSciMapTbl->InputPin != 0xFF) {</span><br><span style="color: hsl(0, 100%, 40%);">-      if ((pSciMapTbl->InputPin >= 0x40) && (pSciMapTbl->InputPin < 0x80) && (pSciMapTbl->GpeMap < 0x20)) {</span><br><span style="color: hsl(0, 100%, 40%);">-        ddtempVar = ACPI_MMIO_BASE | SMI_BASE | pSciMapTbl->InputPin;</span><br><span style="color: hsl(0, 100%, 40%);">-        if (((pSciMapTbl->InputPin == FCH_SMI_xHC0Pme) && (FchResetDataBlock->FchReset.Xhci0Enable == 0)) || \</span><br><span style="color: hsl(0, 100%, 40%);">-           ((pSciMapTbl->InputPin == FCH_SMI_xHC1Pme) && (FchResetDataBlock->FchReset.Xhci1Enable == 0))) {</span><br><span style="color: hsl(0, 100%, 40%);">-        } else {</span><br><span style="color: hsl(0, 100%, 40%);">-          LibAmdMemWrite (AccessWidth8, (UINT64) ddtempVar, &pSciMapTbl->GpeMap, StdHeader);</span><br><span style="color: hsl(0, 100%, 40%);">-        }</span><br><span style="color: hsl(0, 100%, 40%);">-      } else {</span><br><span style="color: hsl(0, 100%, 40%);">-        //Assert Warning "SCI map is invalid"</span><br><span style="color: hsl(0, 100%, 40%);">-      }</span><br><span style="color: hsl(0, 100%, 40%);">-      pSciMapTbl++;</span><br><span style="color: hsl(0, 100%, 40%);">-    }</span><br><span style="color: hsl(0, 100%, 40%);">-  }</span><br><span style="color: hsl(0, 100%, 40%);">-}</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-/*----------------------------------------------------------------------------------------*/</span><br><span style="color: hsl(0, 100%, 40%);">-/**</span><br><span style="color: hsl(0, 100%, 40%);">- * ProgramFchGpioTbl - Program FCH Gpio table (8 bits data)</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- * @param[in] pGpioTbl   - Table data pointer</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- */</span><br><span style="color: hsl(0, 100%, 40%);">-VOID</span><br><span style="color: hsl(0, 100%, 40%);">-ProgramFchGpioTbl (</span><br><span style="color: hsl(0, 100%, 40%);">-  IN       GPIO_CONTROL  *pGpioTbl</span><br><span style="color: hsl(0, 100%, 40%);">-  )</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">-  if (pGpioTbl != NULL) {</span><br><span style="color: hsl(0, 100%, 40%);">-    while (pGpioTbl->GpioPin != 0xFF) {</span><br><span style="color: hsl(0, 100%, 40%);">-      ACPIMMIO8 (ACPI_MMIO_BASE + IOMUX_BASE + pGpioTbl->GpioPin) = (UINT8) (pGpioTbl->PinFunction);</span><br><span style="color: hsl(0, 100%, 40%);">-      ACPIMMIO8 (ACPI_MMIO_BASE + GPIO_BANK0_BASE + (pGpioTbl->GpioPin << 2) + 2) = (UINT8) (pGpioTbl->CfgByte);</span><br><span style="color: hsl(0, 100%, 40%);">-      pGpioTbl++;</span><br><span style="color: hsl(0, 100%, 40%);">-    }</span><br><span style="color: hsl(0, 100%, 40%);">-  }</span><br><span style="color: hsl(0, 100%, 40%);">-}</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-/*----------------------------------------------------------------------------------------*/</span><br><span style="color: hsl(0, 100%, 40%);">-/**</span><br><span style="color: hsl(0, 100%, 40%);">- * ProgramSataPhyTbl - Program FCH Sata Phy table (8 bits data)</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- * @param[in] pSataPhyTbl   - Table data pointer</span><br><span style="color: hsl(0, 100%, 40%);">- * @param[in] FchResetDataBlock</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- */</span><br><span style="color: hsl(0, 100%, 40%);">-VOID</span><br><span style="color: hsl(0, 100%, 40%);">-ProgramFchSataPhyTbl (</span><br><span style="color: hsl(0, 100%, 40%);">-  IN       SATA_PHY_CONTROL  *pSataPhyTbl,</span><br><span style="color: hsl(0, 100%, 40%);">-  IN       FCH_RESET_DATA_BLOCK *FchResetDataBlock</span><br><span style="color: hsl(0, 100%, 40%);">-  )</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">-  if (pSataPhyTbl != NULL) {</span><br><span style="color: hsl(0, 100%, 40%);">-    while (pSataPhyTbl->PhyData != 0xFFFFFFFF) {</span><br><span style="color: hsl(0, 100%, 40%);">-      //to be implemented</span><br><span style="color: hsl(0, 100%, 40%);">-      pSataPhyTbl++;</span><br><span style="color: hsl(0, 100%, 40%);">-    }</span><br><span style="color: hsl(0, 100%, 40%);">-  }</span><br><span style="color: hsl(0, 100%, 40%);">-}</span><br><span style="color: hsl(0, 100%, 40%);">-#endif /* IS_ENABLED(CONFIG_VENDORCODE_FULL_SUPPORT) */</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span> /**</span><br><span>  * GetChipSysMode - Get Chip status</span><br><span>  *</span><br><span>@@ -180,299 +93,3 @@</span><br><span>   }</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-#if IS_ENABLED(CONFIG_VENDORCODE_FULL_SUPPORT)</span><br><span style="color: hsl(0, 100%, 40%);">-/*----------------------------------------------------------------------------------------*/</span><br><span style="color: hsl(0, 100%, 40%);">-/**</span><br><span style="color: hsl(0, 100%, 40%);">- * SbSleepTrapControl - SB Sleep Trap Control</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- * @param[in] SleepTrap    - Whether sleep trap is enabled</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- */</span><br><span style="color: hsl(0, 100%, 40%);">-VOID</span><br><span style="color: hsl(0, 100%, 40%);">-SbSleepTrapControl (</span><br><span style="color: hsl(0, 100%, 40%);">-  IN        BOOLEAN          SleepTrap</span><br><span style="color: hsl(0, 100%, 40%);">-  )</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">-  if (SleepTrap) {</span><br><span style="color: hsl(0, 100%, 40%);">-    ACPIMMIO32 (ACPI_MMIO_BASE + SMI_BASE + FCH_SMI_REGB0) &= ~(BIT2 + BIT3);</span><br><span style="color: hsl(0, 100%, 40%);">-    ACPIMMIO32 (ACPI_MMIO_BASE + SMI_BASE + FCH_SMI_REGB0) |= BIT2;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-    ACPIMMIO8 (ACPI_MMIO_BASE + PMIO_BASE + FCH_PMIOA_REGBE) &= ~ (BIT5);</span><br><span style="color: hsl(0, 100%, 40%);">-    ACPIMMIO8 (ACPI_MMIO_BASE + PMIO_BASE + 0xB) &= ~ (BIT0 + BIT1);</span><br><span style="color: hsl(0, 100%, 40%);">-    ACPIMMIO8 (ACPI_MMIO_BASE + PMIO_BASE + 0xB) |= BIT1;</span><br><span style="color: hsl(0, 100%, 40%);">-  } else {</span><br><span style="color: hsl(0, 100%, 40%);">-    ACPIMMIO8 (ACPI_MMIO_BASE + PMIO_BASE + FCH_PMIOA_REGBE) |= BIT5;</span><br><span style="color: hsl(0, 100%, 40%);">-    ACPIMMIO8 (ACPI_MMIO_BASE + PMIO_BASE + 0xB) &= ~ (BIT0 + BIT1);</span><br><span style="color: hsl(0, 100%, 40%);">-    ACPIMMIO8 (ACPI_MMIO_BASE + PMIO_BASE + 0xB) |= BIT0;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-    ACPIMMIO32 (ACPI_MMIO_BASE + SMI_BASE + FCH_SMI_REGB0) &= ~(BIT2 + BIT3);</span><br><span style="color: hsl(0, 100%, 40%);">-  }</span><br><span style="color: hsl(0, 100%, 40%);">-}</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-/**</span><br><span style="color: hsl(0, 100%, 40%);">- * FchUsb3D3ColdCallback - Fch Usb3 D3Cold Callback</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- * @param[in] FchDataPtr</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- */</span><br><span style="color: hsl(0, 100%, 40%);">-VOID</span><br><span style="color: hsl(0, 100%, 40%);">-FchUsb3D3ColdCallback (</span><br><span style="color: hsl(0, 100%, 40%);">-  IN  VOID     *FchDataPtr</span><br><span style="color: hsl(0, 100%, 40%);">-  )</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">-  FCH_DATA_BLOCK         *LocalCfgPtr;</span><br><span style="color: hsl(0, 100%, 40%);">-  AMD_CONFIG_PARAMS      *StdHeader;</span><br><span style="color: hsl(0, 100%, 40%);">-  UINT8 Value8;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  LocalCfgPtr = (FCH_DATA_BLOCK *) FchDataPtr;</span><br><span style="color: hsl(0, 100%, 40%);">-  StdHeader = LocalCfgPtr->StdHeader;</span><br><span style="color: hsl(0, 100%, 40%);">-  //FCH_DEADLOOP ();</span><br><span style="color: hsl(0, 100%, 40%);">-  ACPIMMIO32 (FCH_AOACxA0_PwrGood_Control) |= FCH_AOACxA0_PwrGood_Control_SwUsb3SlpShutdown;</span><br><span style="color: hsl(0, 100%, 40%);">-  do {</span><br><span style="color: hsl(0, 100%, 40%);">-  } while ((ACPIMMIO32 (FCH_AOACxA0_PwrGood_Control) & FCH_AOACxA0_PwrGood_Control_SwUsb3SlpShutdown) == 0);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  ACPIMMIO32 (FCH_XHC_PMx00_Configure0) |= FCH_XHC_PMx00_Configure0_U3P_D3Cold_PWRDN;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  ACPIMMIO8 (FCH_AOACx6E_USB3_D3_CONTROL) &= ~ (AOAC_PWR_ON_DEV);</span><br><span style="color: hsl(0, 100%, 40%);">-  do {</span><br><span style="color: hsl(0, 100%, 40%);">-  } while ((ACPIMMIO8 (FCH_AOACx6F_USB3_D3_STATE) & 0x07) != 0);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  ACPIMMIO8 (FCH_AOACx6E_USB3_D3_CONTROL) |= 3;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  ACPIMMIO32 (FCH_MISCx28_ClkDrvStr2) |= FCH_MISCx28_ClkDrvStr2_USB3_RefClk_Pwdn;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  if ((ACPIMMIO8 (FCH_AOACx64_EHCI_D3_CONTROL) & 0x03) == 3) {</span><br><span style="color: hsl(0, 100%, 40%);">-    ACPIMMIO32 (FCH_AOACxA0_PwrGood_Control) &= ~ (FCH_AOACxA0_PwrGood_Control_SwUsb2S5RstB + FCH_AOACxA0_PwrGood_Control_SwUsb3SlpShutdown);</span><br><span style="color: hsl(0, 100%, 40%);">-    ACPIMMIO32 (FCH_MISCx28_ClkDrvStr2) |= FCH_MISCx28_ClkDrvStr2_USB2_RefClk_Pwdn;</span><br><span style="color: hsl(0, 100%, 40%);">-  }</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  ACPIMMIO32 (FCH_AOACxA0_PwrGood_Control) &= ~ (FCH_AOACxA0_PwrGood_Control_XhcPwrGood + FCH_AOACxA0_PwrGood_Control_SwUsb3SlpShutdown);</span><br><span style="color: hsl(0, 100%, 40%);">-  Value8 = ACPIMMIO8 (0xFED803EE);</span><br><span style="color: hsl(0, 100%, 40%);">-  Value8 &= 0xFC;</span><br><span style="color: hsl(0, 100%, 40%);">-  Value8 |= 0x01;</span><br><span style="color: hsl(0, 100%, 40%);">-  ACPIMMIO8 (0xFED803EE) = Value8;</span><br><span style="color: hsl(0, 100%, 40%);">-}</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-/**</span><br><span style="color: hsl(0, 100%, 40%);">- * FchUsb3D0Callback - Fch Usb3 D0 Callback</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- * @param[in] FchDataPtr</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- */</span><br><span style="color: hsl(0, 100%, 40%);">-VOID</span><br><span style="color: hsl(0, 100%, 40%);">-FchUsb3D0Callback (</span><br><span style="color: hsl(0, 100%, 40%);">-  IN  VOID     *FchDataPtr</span><br><span style="color: hsl(0, 100%, 40%);">-  )</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">-  FCH_DATA_BLOCK         *LocalCfgPtr;</span><br><span style="color: hsl(0, 100%, 40%);">-  AMD_CONFIG_PARAMS      *StdHeader;</span><br><span style="color: hsl(0, 100%, 40%);">-  UINT32 Dword32;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  LocalCfgPtr = (FCH_DATA_BLOCK *) FchDataPtr;</span><br><span style="color: hsl(0, 100%, 40%);">-  StdHeader = LocalCfgPtr->StdHeader;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  ACPIMMIO8 (0xFED803EE) &= 0xFC;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  ACPIMMIO8 (FCH_AOACxA0_PwrGood_Control) |= (FCH_AOACxA0_PwrGood_Control_XhcPwrGood);</span><br><span style="color: hsl(0, 100%, 40%);">-  ACPIMMIO32 (FCH_MISCx28_ClkDrvStr2) &= ~ (FCH_MISCx28_ClkDrvStr2_USB2_RefClk_Pwdn);</span><br><span style="color: hsl(0, 100%, 40%);">-  ACPIMMIO32 (FCH_MISCx28_ClkDrvStr2) &= ~ (FCH_MISCx28_ClkDrvStr2_USB3_RefClk_Pwdn);</span><br><span style="color: hsl(0, 100%, 40%);">-  Dword32 = ACPIMMIO32 (FCH_AOACxA0_PwrGood_Control);</span><br><span style="color: hsl(0, 100%, 40%);">-  Dword32 &= ~(FCH_AOACxA0_PwrGood_Control_SwUsb3SlpShutdown);</span><br><span style="color: hsl(0, 100%, 40%);">-  ACPIMMIO32 (FCH_AOACxA0_PwrGood_Control) =  ((FCH_AOACxA0_PwrGood_Control_SwUsb2S5RstB | Dword32) & (~ BIT29));</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  ACPIMMIO8 (FCH_AOACx6E_USB3_D3_CONTROL) &= 0xFC;</span><br><span style="color: hsl(0, 100%, 40%);">-  ACPIMMIO8 (FCH_AOACx6E_USB3_D3_CONTROL) |= (AOAC_PWR_ON_DEV);</span><br><span style="color: hsl(0, 100%, 40%);">-  do {</span><br><span style="color: hsl(0, 100%, 40%);">-  } while ((ACPIMMIO8 (FCH_AOACx6F_USB3_D3_STATE) & 0x07) != 7);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  do {</span><br><span style="color: hsl(0, 100%, 40%);">-  } while ((ACPIMMIO32 (FCH_XHC_PMx00_Configure0) & BIT7) != BIT7);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  ACPIMMIO32 (FCH_XHC_PMx00_Configure0) &= ~ (BIT16);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-}</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-/* -----------------------------------------------------------------------------*/</span><br><span style="color: hsl(0, 100%, 40%);">-/**</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- *   This function Checks Bristol or Stoney</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- *   NOTE:</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- * @param[in] StdHeader</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- */</span><br><span style="color: hsl(0, 100%, 40%);">-BOOLEAN</span><br><span style="color: hsl(0, 100%, 40%);">-FchCheckBR_ST (</span><br><span style="color: hsl(0, 100%, 40%);">-  IN       AMD_CONFIG_PARAMS   *StdHeader</span><br><span style="color: hsl(0, 100%, 40%);">-  )</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">-  CPU_LOGICAL_ID LogicalId;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  // Only initialize on CZ processors, otherwise exit.</span><br><span style="color: hsl(0, 100%, 40%);">-  GetLogicalIdOfCurrentCore (&LogicalId, StdHeader);</span><br><span style="color: hsl(0, 100%, 40%);">-  if ((LogicalId.Revision & AMD_F15_BR_ALL) != 0) {</span><br><span style="color: hsl(0, 100%, 40%);">-    return TRUE;</span><br><span style="color: hsl(0, 100%, 40%);">-  }</span><br><span style="color: hsl(0, 100%, 40%);">-  if ((LogicalId.Revision & AMD_F15_ST_ALL) != 0) {</span><br><span style="color: hsl(0, 100%, 40%);">-    return TRUE;</span><br><span style="color: hsl(0, 100%, 40%);">-  }</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  return FALSE;</span><br><span style="color: hsl(0, 100%, 40%);">-}</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-/* -----------------------------------------------------------------------------*/</span><br><span style="color: hsl(0, 100%, 40%);">-/**</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- *   This function Checks Bristol</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- *   NOTE:</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- * @param[in] StdHeader</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- */</span><br><span style="color: hsl(0, 100%, 40%);">-BOOLEAN</span><br><span style="color: hsl(0, 100%, 40%);">-FchCheckBR (</span><br><span style="color: hsl(0, 100%, 40%);">-  IN       AMD_CONFIG_PARAMS   *StdHeader</span><br><span style="color: hsl(0, 100%, 40%);">-  )</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">-  CPU_LOGICAL_ID LogicalId;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  // Only initialize on CZ processors, otherwise exit.</span><br><span style="color: hsl(0, 100%, 40%);">-  GetLogicalIdOfCurrentCore (&LogicalId, StdHeader);</span><br><span style="color: hsl(0, 100%, 40%);">-  if ((LogicalId.Revision & AMD_F15_BR_ALL) != 0) {</span><br><span style="color: hsl(0, 100%, 40%);">-    return TRUE;</span><br><span style="color: hsl(0, 100%, 40%);">-  }</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  return FALSE;</span><br><span style="color: hsl(0, 100%, 40%);">-}</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-/* -----------------------------------------------------------------------------*/</span><br><span style="color: hsl(0, 100%, 40%);">-/**</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- *   This function Checks Stoney</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- *   NOTE:</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- * @param[in] StdHeader</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- */</span><br><span style="color: hsl(0, 100%, 40%);">-BOOLEAN</span><br><span style="color: hsl(0, 100%, 40%);">-FchCheckST (</span><br><span style="color: hsl(0, 100%, 40%);">-  IN       AMD_CONFIG_PARAMS   *StdHeader</span><br><span style="color: hsl(0, 100%, 40%);">-  )</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">-  CPU_LOGICAL_ID LogicalId;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  // Only initialize on CZ processors, otherwise exit.</span><br><span style="color: hsl(0, 100%, 40%);">-  GetLogicalIdOfCurrentCore (&LogicalId, StdHeader);</span><br><span style="color: hsl(0, 100%, 40%);">-  if ((LogicalId.Revision & AMD_F15_ST_ALL) != 0) {</span><br><span style="color: hsl(0, 100%, 40%);">-    return TRUE;</span><br><span style="color: hsl(0, 100%, 40%);">-  }</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  return FALSE;</span><br><span style="color: hsl(0, 100%, 40%);">-}</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-/* -----------------------------------------------------------------------------*/</span><br><span style="color: hsl(0, 100%, 40%);">-/**</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- *   This function Checks Carrizo</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- *   NOTE:</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- * @param[in] StdHeader</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- */</span><br><span style="color: hsl(0, 100%, 40%);">-BOOLEAN</span><br><span style="color: hsl(0, 100%, 40%);">-FchCheckCZ (</span><br><span style="color: hsl(0, 100%, 40%);">-  IN       AMD_CONFIG_PARAMS   *StdHeader</span><br><span style="color: hsl(0, 100%, 40%);">-  )</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">-  CPU_LOGICAL_ID LogicalId;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  // Only initialize on CZ processors, otherwise exit.</span><br><span style="color: hsl(0, 100%, 40%);">-  GetLogicalIdOfCurrentCore (&LogicalId, StdHeader);</span><br><span style="color: hsl(0, 100%, 40%);">-  if ((LogicalId.Revision & AMD_F15_CZ_ALL) != 0) {</span><br><span style="color: hsl(0, 100%, 40%);">-    return TRUE;</span><br><span style="color: hsl(0, 100%, 40%);">-  }</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  return FALSE;</span><br><span style="color: hsl(0, 100%, 40%);">-}</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-/* -----------------------------------------------------------------------------*/</span><br><span style="color: hsl(0, 100%, 40%);">-/**</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- *   This function Checks Package AM4</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- *   NOTE:</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- * @param[in] StdHeader</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- */</span><br><span style="color: hsl(0, 100%, 40%);">-BOOLEAN</span><br><span style="color: hsl(0, 100%, 40%);">-FchCheckPackageAM4 (</span><br><span style="color: hsl(0, 100%, 40%);">-  IN       AMD_CONFIG_PARAMS   *StdHeader</span><br><span style="color: hsl(0, 100%, 40%);">-  )</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">-  CPUID_DATA CpuId;</span><br><span style="color: hsl(0, 100%, 40%);">-  UINT8 RegValue;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  LibAmdCpuidRead (AMD_CPUID_FMF, &CpuId, StdHeader);</span><br><span style="color: hsl(0, 100%, 40%);">-  RegValue = (UINT8) (CpuId.EBX_Reg >> 28) & 0xF; // bit 31:28</span><br><span style="color: hsl(0, 100%, 40%);">-  ///@todo - update the PkgType once it is reflected in BKDG</span><br><span style="color: hsl(0, 100%, 40%);">-  if (RegValue == 2) {</span><br><span style="color: hsl(0, 100%, 40%);">-    return TRUE;</span><br><span style="color: hsl(0, 100%, 40%);">-  } else {</span><br><span style="color: hsl(0, 100%, 40%);">-    return FALSE;</span><br><span style="color: hsl(0, 100%, 40%);">-  }</span><br><span style="color: hsl(0, 100%, 40%);">-}</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-/* -----------------------------------------------------------------------------*/</span><br><span style="color: hsl(0, 100%, 40%);">-/**</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- *   This function Get Scratch Fuse</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- *   NOTE:</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- * @param[in] StdHeader</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- */</span><br><span style="color: hsl(0, 100%, 40%);">-UINT64</span><br><span style="color: hsl(0, 100%, 40%);">-FchGetScratchFuse (</span><br><span style="color: hsl(0, 100%, 40%);">-  IN       AMD_CONFIG_PARAMS   *StdHeader</span><br><span style="color: hsl(0, 100%, 40%);">-  )</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">-  PCI_ADDR D0F0xB8_SMU_Index_Address;</span><br><span style="color: hsl(0, 100%, 40%);">-  PCI_ADDR D0F0xBC_SMU_Index_Data;</span><br><span style="color: hsl(0, 100%, 40%);">-  UINT64  TempData64;</span><br><span style="color: hsl(0, 100%, 40%);">-  UINT32  TempData32;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  D0F0xB8_SMU_Index_Address.AddressValue = (MAKE_SBDFO (0, 0, 0, 0, 0xB8));</span><br><span style="color: hsl(0, 100%, 40%);">-  D0F0xBC_SMU_Index_Data.AddressValue = (MAKE_SBDFO (0, 0, 0, 0, 0xBC));</span><br><span style="color: hsl(0, 100%, 40%);">-  TempData64 = 0;</span><br><span style="color: hsl(0, 100%, 40%);">-  TempData32 = 0xC0016028;</span><br><span style="color: hsl(0, 100%, 40%);">-  LibAmdPciWrite (AccessWidth32, D0F0xB8_SMU_Index_Address, &TempData32, StdHeader);</span><br><span style="color: hsl(0, 100%, 40%);">-  LibAmdPciRead (AccessWidth32, D0F0xBC_SMU_Index_Data, &TempData32, StdHeader);</span><br><span style="color: hsl(0, 100%, 40%);">-  TempData64 |= (((UINT64) TempData32) & 0xFFFFFFFF) >> 9;</span><br><span style="color: hsl(0, 100%, 40%);">-  TempData32 = 0xC001602C;</span><br><span style="color: hsl(0, 100%, 40%);">-  LibAmdPciWrite (AccessWidth32, D0F0xB8_SMU_Index_Address, &TempData32, StdHeader);</span><br><span style="color: hsl(0, 100%, 40%);">-  LibAmdPciRead (AccessWidth32, D0F0xBC_SMU_Index_Data, &TempData32, StdHeader);</span><br><span style="color: hsl(0, 100%, 40%);">-  TempData64 |= (((UINT64) TempData32) & 0xFFFFFFFF) << (32 - 9);</span><br><span style="color: hsl(0, 100%, 40%);">-  TempData32 = 0xC0016030;</span><br><span style="color: hsl(0, 100%, 40%);">-  LibAmdPciWrite (AccessWidth32, D0F0xB8_SMU_Index_Address, &TempData32, StdHeader);</span><br><span style="color: hsl(0, 100%, 40%);">-  LibAmdPciRead (AccessWidth32, D0F0xBC_SMU_Index_Data, &TempData32, StdHeader);</span><br><span style="color: hsl(0, 100%, 40%);">-  TempData64 |= (((UINT64) TempData32) & 0xFFFFFFFF) << (64 - 9);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  return TempData64;</span><br><span style="color: hsl(0, 100%, 40%);">-}</span><br><span style="color: hsl(0, 100%, 40%);">-#endif /* IS_ENABLED(CONFIG_VENDORCODE_FULL_SUPPORT) */</span><br><span></span><br></pre><p>To view, visit <a href="https://review.coreboot.org/28088">change 28088</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://review.coreboot.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://review.coreboot.org/28088"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: coreboot </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>
<div style="display:none"> Gerrit-Change-Id: If24eb7f005720a62a1280fe78ddb54c9d2690150 </div>
<div style="display:none"> Gerrit-Change-Number: 28088 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Richard Spiegel <richard.spiegel@silverbackltd.com> </div>