<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>