[coreboot-gerrit] Change in coreboot[master]: vendorcode/amd/pi/00670F00/Lib/AmdLib.c: Remove VENDORCODE_FULL_SUPPORT

Richard Spiegel (Code Review) gerrit at coreboot.org
Tue Aug 14 23:06:40 CEST 2018


Richard Spiegel has uploaded this change for review. ( https://review.coreboot.org/28091


Change subject: vendorcode/amd/pi/00670F00/Lib/AmdLib.c: Remove VENDORCODE_FULL_SUPPORT
......................................................................

vendorcode/amd/pi/00670F00/Lib/AmdLib.c: Remove VENDORCODE_FULL_SUPPORT

Remove VENDORCODE_FULL_SUPPORT from file above mentioned file, in
preparation to full removal of VENDORCODE_FULL_SUPPORT functions.

BUG=b:112578491
TEST=none, VENDORCODE_FULL_SUPPORT already not used.

Change-Id: Ic23dcf245b2cee24f7363ca3bb9918eb2f11179c
Signed-off-by: Richard Spiegel <richard.spiegel at silverbackltd.com>
---
M src/vendorcode/amd/pi/00670F00/Lib/amdlib.c
1 file changed, 0 insertions(+), 654 deletions(-)



  git pull ssh://review.coreboot.org:29418/coreboot refs/changes/91/28091/1

diff --git a/src/vendorcode/amd/pi/00670F00/Lib/amdlib.c b/src/vendorcode/amd/pi/00670F00/Lib/amdlib.c
index 784ba46..7181d1d 100644
--- a/src/vendorcode/amd/pi/00670F00/Lib/amdlib.c
+++ b/src/vendorcode/amd/pi/00670F00/Lib/amdlib.c
@@ -61,18 +61,6 @@
   IN       AMD_CONFIG_PARAMS *StdHeader
   );
 
-#if IS_ENABLED(CONFIG_VENDORCODE_FULL_SUPPORT)
-VOID
-STATIC
-LibAmdGetDataFromPtr (
-  IN       ACCESS_WIDTH AccessWidth,
-  IN       CONST VOID   *Data,
-  IN       CONST VOID   *DataMask,
-     OUT   UINT32       *TemData,
-     OUT   UINT32       *TempDataMask
-  );
-#endif /* IS_ENABLED(CONFIG_VENDORCODE_FULL_SUPPORT) */
-
 VOID
 IdsOutPort (
   IN       UINT32 Addr,
@@ -277,123 +265,6 @@
   }
 }
 
-#if IS_ENABLED(CONFIG_VENDORCODE_FULL_SUPPORT)
-AMDLIB_OPTIMIZE
-VOID
-LibAmdReadCpuReg (
-  IN       UINT8 RegNum,
-     OUT   UINT32 *Value
-  )
-{
-    *Value = 0;
-    switch (RegNum){
-    case CR4_REG:
-      *Value = __readcr4 ();
-      break;
-    case DR0_REG:
-      *Value = __readdr (0);
-      break;
-    case DR1_REG:
-      *Value = __readdr (1);
-      break;
-    case DR2_REG:
-      *Value = __readdr (2);
-      break;
-    case DR3_REG:
-      *Value = __readdr (3);
-      break;
-    case DR7_REG:
-      *Value = __readdr (7);
-      break;
-    default:
-      *Value = -1;
-      break;
-  }
-}
-
-AMDLIB_OPTIMIZE
-VOID
-LibAmdWriteCpuReg (
-  IN       UINT8 RegNum,
-  IN       UINT32 Value
-  )
-{
-   switch (RegNum){
-    case CR4_REG:
-      __writecr4 (Value);
-      break;
-    case DR0_REG:
-      __writedr (0, Value);
-      break;
-    case DR1_REG:
-      __writedr (1, Value);
-      break;
-    case DR2_REG:
-      __writedr (2, Value);
-      break;
-    case DR3_REG:
-      __writedr (3, Value);
-      break;
-    case DR7_REG:
-      __writedr (7, Value);
-      break;
-    default:
-      break;
-  }
-}
-
-AMDLIB_OPTIMIZE
-VOID
-LibAmdWriteBackInvalidateCache (
-  void
-  )
-{
-  __wbinvd ();
-}
-
-AMDLIB_OPTIMIZE
-VOID
-LibAmdHDTBreakPoint (
-  void
-  )
-{
-  __writemsr (0xC001100A, __readmsr (0xC001100A) | 1);
-  __debugbreak (); // do you really need icebp? If so, go back to asm code
-}
-
-AMDLIB_OPTIMIZE
-UINT8
-LibAmdBitScanForward (
-  IN       UINT32 value
-  )
-{
-  UINTN Index;
-  for (Index = 0; Index < 32; Index++){
-    if (value & (1 << Index)) break;
-  }
-  return (UINT8) Index;
-}
-
-AMDLIB_OPTIMIZE
-UINT8
-LibAmdBitScanReverse (
-  IN       UINT32 value
-)
-{
-  uint8_t bit = 31;
-  do {
-    if (value & (1 << 31))
-      return bit;
-
-    value <<= 1;
-    bit--;
-
-  } while (value != 0);
-
-  return 0xFF; /* Error code indicating no bit found */
-}
-#endif /* IS_ENABLED(CONFIG_VENDORCODE_FULL_SUPPORT) */
-
 AMDLIB_OPTIMIZE
 VOID
 LibAmdMsrRead (
@@ -419,93 +290,6 @@
   __writemsr (MsrAddress, *Value);
 }
 
-#if IS_ENABLED(CONFIG_VENDORCODE_FULL_SUPPORT)
-AMDLIB_OPTIMIZE
-void LibAmdCpuidRead (
-  IN       UINT32 CpuidFcnAddress,
-     OUT   CPUID_DATA* Value,
-  IN OUT   AMD_CONFIG_PARAMS *ConfigPtr
-  )
-{
-  __cpuid ((int *)Value, CpuidFcnAddress);
-}
-
-AMDLIB_OPTIMIZE
-UINT64
-ReadTSC (
-  void
-  )
-{
-  return __rdtsc ();
-}
-
-AMDLIB_OPTIMIZE
-VOID
-LibAmdSimNowEnterDebugger (
-  void
-  )
-{
-  STATIC CONST UINT8 opcode [] = {0x60,                             // pushad
-                                   0xBB, 0x02, 0x00, 0x00, 0x00,     // mov ebx, 2
-                                   0xB8, 0x0B, 0xD0, 0xCC, 0xBA,     // mov eax, 0xBACCD00B
-                                   0x0F, 0xA2,                       // cpuid
-                                   0x61,                             // popad
-                                   0xC3                              // ret
-                                 };
-  ((VOID (*)(VOID)) (size_t) opcode) (); // call the function
-}
-
-AMDLIB_OPTIMIZE
-VOID
-IdsOutPort (
-  IN       UINT32 Addr,
-  IN       UINT32 Value,
-  IN       UINT32 Flag
-  )
-{
-  __outdword ((UINT16) Addr, Value);
-}
-
-AMDLIB_OPTIMIZE
-VOID
-StopHere (
-  void
-  )
-{
-  VOLATILE UINTN x = 1;
-  while (x);
-}
-
-AMDLIB_OPTIMIZE
-VOID
-LibAmdCLFlush (
-  IN       UINT64 Address,
-  IN       UINT8  Count
-  )
-{
-  UINT64 hwcrSave;
-  UINT8  *address32;
-  UINTN  Index;
-  address32 = 0;
-  hwcrSave = SetFsBase (Address);
-  for (Index = 0; Index < Count; Index++){
-    _mm_mfence ();
-    _mm_clflush_fs (&address32 [Index * 64]);
-  }
-  RestoreHwcr (hwcrSave);
-}
-
-
-AMDLIB_OPTIMIZE
-VOID
-LibAmdFinit(
-  void
-  )
-{
-	/* TODO: finit */
-	__asm__ volatile ("finit");
-}
-#endif /* IS_ENABLED(CONFIG_VENDORCODE_FULL_SUPPORT) */
 /*---------------------------------------------------------------------------------------*/
 /**
  * Read IO port
@@ -582,41 +366,6 @@
   }
 }
 
-#if IS_ENABLED(CONFIG_VENDORCODE_FULL_SUPPORT)
-/*---------------------------------------------------------------------------------------*/
-/**
- * Poll IO register
- *
- *  Poll register until (RegisterValue & DataMask) ==  Data
- *
- * @param[in] AccessWidth   Access width
- * @param[in] IoAddress     IO address
- * @param[in] Data          Data to compare
- * @param[in] DataMask      And mask
- * @param[in] Delay         Poll for time in 100ns (not supported)
- * @param[in] StdHeader     Standard configuration header
- *
- */
-VOID
-LibAmdIoPoll (
-  IN       ACCESS_WIDTH AccessWidth,
-  IN       UINT16 IoAddress,
-  IN       CONST VOID *Data,
-  IN       CONST VOID *DataMask,
-  IN       UINT64 Delay,
-  IN OUT   AMD_CONFIG_PARAMS *StdHeader
-  )
-{
-  UINT32  TempData;
-  UINT32  TempMask;
-  UINT32  Value;
-  LibAmdGetDataFromPtr (AccessWidth, Data,  DataMask, &TempData, &TempMask);
-  do {
-    LibAmdIoRead (AccessWidth, IoAddress, &Value, NULL);
-  } while (TempData != (Value & TempMask));
-}
-#endif /* IS_ENABLED(CONFIG_VENDORCODE_FULL_SUPPORT) */
-
 /*---------------------------------------------------------------------------------------*/
 /**
  * Read memory/MMIO
@@ -694,41 +443,6 @@
   }
 }
 
-#if IS_ENABLED(CONFIG_VENDORCODE_FULL_SUPPORT)
-/*---------------------------------------------------------------------------------------*/
-/**
- * Poll Mmio
- *
- *  Poll register until (RegisterValue & DataMask) ==  Data
- *
- * @param[in] AccessWidth   Access width
- * @param[in] MemAddress    Memory address
- * @param[in] Data          Data to compare
- * @param[in] DataMask      AND mask
- * @param[in] Delay         Poll for time in 100ns (not supported)
- * @param[in] StdHeader     Standard configuration header
- *
- */
-VOID
-LibAmdMemPoll (
-  IN       ACCESS_WIDTH AccessWidth,
-  IN       UINT64 MemAddress,
-  IN       CONST VOID *Data,
-  IN       CONST VOID *DataMask,
-  IN       UINT64 Delay,
-  IN OUT   AMD_CONFIG_PARAMS *StdHeader
-  )
-{
-  UINT32  TempData = 0;
-  UINT32  TempMask = 0;
-  UINT32  Value;
-  LibAmdGetDataFromPtr (AccessWidth, Data,  DataMask, &TempData, &TempMask);
-  do {
-    LibAmdMemRead (AccessWidth, MemAddress, &Value, NULL);
-  } while (TempData != (Value & TempMask));
-}
-#endif /* IS_ENABLED(CONFIG_VENDORCODE_FULL_SUPPORT) */
-
 /*---------------------------------------------------------------------------------------*/
 /**
  * Read PCI config space
@@ -835,41 +549,6 @@
   }
 }
 
-#if IS_ENABLED(CONFIG_VENDORCODE_FULL_SUPPORT)
-/*---------------------------------------------------------------------------------------*/
-/**
- * Poll PCI config space register
- *
- *  Poll register until (RegisterValue & DataMask) ==  Data
- *
- * @param[in] AccessWidth   Access width
- * @param[in] PciAddress    Pci address
- * @param[in] Data          Data to compare
- * @param[in] DataMask      AND mask
- * @param[in] Delay         Poll for time in 100ns (not supported)
- * @param[in] StdHeader     Standard configuration header
- *
- */
-VOID
-LibAmdPciPoll (
-  IN       ACCESS_WIDTH AccessWidth,
-  IN       PCI_ADDR PciAddress,
-  IN       CONST VOID *Data,
-  IN       CONST VOID *DataMask,
-  IN       UINT64 Delay,
-  IN OUT   AMD_CONFIG_PARAMS *StdHeader
-  )
-{
-  UINT32  TempData = 0;
-  UINT32  TempMask = 0;
-  UINT32  Value;
-  LibAmdGetDataFromPtr (AccessWidth, Data,  DataMask, &TempData, &TempMask);
-  do {
-    LibAmdPciRead (AccessWidth, PciAddress, &Value, NULL);
-  } while (TempData != (Value & TempMask));
-}
-#endif /* IS_ENABLED(CONFIG_VENDORCODE_FULL_SUPPORT) */
-
 /*---------------------------------------------------------------------------------------*/
 /**
  * Get MMIO base address for PCI accesses
@@ -903,207 +582,6 @@
   return MmioIsEnabled;
 }
 
-#if IS_ENABLED(CONFIG_VENDORCODE_FULL_SUPPORT)
-/*---------------------------------------------------------------------------------------*/
-/**
- * Read field of PCI config register.
- *
- *
- *
- * @param[in]   Address       Pci address  (register must be DWORD aligned)
- * @param[in]   Highbit       High bit position of the field in DWORD
- * @param[in]   Lowbit        Low bit position of the field in DWORD
- * @param[out]  Value         Pointer to data
- * @param[in]   StdHeader     Standard configuration header
- */
-VOID
-LibAmdPciReadBits (
-  IN       PCI_ADDR Address,
-  IN       UINT8 Highbit,
-  IN       UINT8 Lowbit,
-     OUT   UINT32 *Value,
-  IN       AMD_CONFIG_PARAMS *StdHeader
-  )
-{
-  ASSERT (Highbit < 32 && Lowbit < 32 && Highbit >= Lowbit && (Address.AddressValue & 3) == 0);
-
-  LibAmdPciRead (AccessWidth32, Address, Value, NULL);
-  *Value >>= Lowbit;  // Shift
-
-  // A 1 << 32 == 1 << 0 due to x86 SHL instruction, so skip if that is the case
-
-  if ((Highbit - Lowbit) != 31) {
-    *Value &= (((UINT32) 1 << (Highbit - Lowbit + 1)) - 1);
-  }
-}
-
-/*---------------------------------------------------------------------------------------*/
-/**
- * Write field of PCI config register.
- *
- *
- *
- * @param[in]   Address       Pci address  (register must be DWORD aligned)
- * @param[in]   Highbit       High bit position of the field in DWORD
- * @param[in]   Lowbit        Low bit position of the field in DWORD
- * @param[in]   Value         Pointer to data
- * @param[in]   StdHeader     Standard configuration header
- */
-VOID
-LibAmdPciWriteBits (
-  IN       PCI_ADDR Address,
-  IN       UINT8 Highbit,
-  IN       UINT8 Lowbit,
-  IN       CONST UINT32 *Value,
-  IN       AMD_CONFIG_PARAMS *StdHeader
-  )
-{
-  UINT32 Temp;
-  UINT32 Mask;
-
-  ASSERT (Highbit < 32 && Lowbit < 32 && Highbit >= Lowbit && (Address.AddressValue & 3) == 0);
-
-  // A 1<<32 == 1<<0 due to x86 SHL instruction, so skip if that is the case
-
-  if ((Highbit - Lowbit) != 31) {
-    Mask = (((UINT32) 1 << (Highbit - Lowbit + 1)) - 1);
-  } else {
-    Mask = (UINT32) 0xFFFFFFFF;
-  }
-
-  LibAmdPciRead (AccessWidth32, Address, &Temp, NULL);
-  Temp &= ~(Mask << Lowbit);
-  Temp |= (*Value & Mask) << Lowbit;
-  LibAmdPciWrite (AccessWidth32, Address, &Temp, NULL);
-}
-
-/*---------------------------------------------------------------------------------------*/
-/**
- * Locate next capability pointer
- *
- *  Given a SBDFO this routine will find the next PCI capabilities list entry.
- *  if the end of the list is reached, or if a problem is detected, then ILLEGAL_SBDFO is
- *  returned.
- *  To start a new search from the head of the list, specify a SBDFO with an offset of zero.
- *
- * @param[in,out] Address       Pci address
- * @param[in]     StdHeader     Standard configuration header
- */
-
-VOID
-LibAmdPciFindNextCap (
-  IN OUT   PCI_ADDR *Address,
-  IN       AMD_CONFIG_PARAMS *StdHeader
-  )
-{
-  PCI_ADDR Base;
-  UINT32 Offset;
-  UINT32 Temp;
-  PCI_ADDR TempAddress;
-
-  ASSERT (Address != NULL);
-  ASSERT (*(UINT32 *) Address != ILLEGAL_SBDFO);
-
-  Base.AddressValue = Address->AddressValue;
-  Offset = Base.Address.Register;
-  Base.Address.Register = 0;
-
-  Address->AddressValue = (UINT32) ILLEGAL_SBDFO;
-
-  // Verify that the SBDFO points to a valid PCI device SANITY CHECK
-  LibAmdPciRead (AccessWidth32, Base, &Temp, NULL);
-  if (Temp == 0xFFFFFFFF) {
-    ASSERT (FALSE);
-    return; // There is no device at this address
-  }
-
-  // Verify that the device supports a capability list
-  TempAddress.AddressValue = Base.AddressValue + 0x04;
-  LibAmdPciReadBits (TempAddress, 20, 20, &Temp, NULL);
-  if (Temp == 0) {
-    return; // This PCI device does not support capability lists
-  }
-
-  if (Offset != 0) {
-    // If we are continuing on an existing list
-    TempAddress.AddressValue = Base.AddressValue + Offset;
-    LibAmdPciReadBits (TempAddress, 15, 8, &Temp, NULL);
-  } else {
-    // We are starting on a new list
-    TempAddress.AddressValue = Base.AddressValue + 0x34;
-    LibAmdPciReadBits (TempAddress, 7, 0, &Temp, NULL);
-  }
-
-  if (Temp == 0) {
-    return; // We have reached the end of the capabilities list
-  }
-
-  // Error detection and recovery- The statement below protects against
-  //   PCI devices with broken PCI capabilities lists.  Detect a pointer
-  //   that is not uint32 aligned, points into the first 64 reserved DWORDs
-  //   or points back to itself.
-  if (((Temp & 3) != 0) || (Temp == Offset) || (Temp < 0x40)) {
-    ASSERT (FALSE);
-    return;
-  }
-
-  Address->AddressValue = Base.AddressValue + Temp;
-  return;
-}
-
-/*---------------------------------------------------------------------------------------*/
-/**
- * Set memory with value
- *
- *
- * @param[in,out] Destination   Pointer to memory range
- * @param[in]     Value         Value to set memory with
- * @param[in]     FillLength    Size of the memory range
- * @param[in]     StdHeader     Standard configuration header (Optional)
- */
-VOID
-LibAmdMemFill (
-  IN       VOID *Destination,
-  IN       UINT8 Value,
-  IN       UINTN FillLength,
-  IN OUT   AMD_CONFIG_PARAMS *StdHeader
-  )
-{
-  UINT8 *Dest;
-  Dest = Destination;
-  while ((FillLength--) != 0) {
-    *Dest++ = Value;
-  }
-}
-
-/*---------------------------------------------------------------------------------------*/
-/**
- * Copy memory
- *
- *
- * @param[in,out] Destination   Pointer to destination buffer
- * @param[in]     Source        Pointer to source buffer
- * @param[in]     CopyLength    buffer length
- * @param[in]     StdHeader     Standard configuration header (Optional)
- */
-VOID
-LibAmdMemCopy (
-  IN       VOID *Destination,
-  IN       CONST VOID *Source,
-  IN       UINTN CopyLength,
-  IN OUT   AMD_CONFIG_PARAMS *StdHeader
-  )
-{
-  UINT8 *Dest;
-  CONST UINT8 *SourcePtr;
-  Dest = Destination;
-  SourcePtr = Source;
-  while ((CopyLength--) != 0) {
-    *Dest++ = *SourcePtr++;
-  }
-}
-#endif /* IS_ENABLED(CONFIG_VENDORCODE_FULL_SUPPORT) */
-
 /*---------------------------------------------------------------------------------------*/
 /**
  * Verify checksum of binary image (B1/B2/B3)
@@ -1187,138 +665,6 @@
   return NULL;
 }
 
-#if IS_ENABLED(CONFIG_VENDORCODE_FULL_SUPPORT)
-/*---------------------------------------------------------------------------------------*/
-/**
- * Returns the package type mask for the processor
- *
- *
- * @param[in]     StdHeader     Standard configuration header (Optional)
- */
-
-//  Returns the package type mask for the processor
-UINT32
-LibAmdGetPackageType (
-  IN       AMD_CONFIG_PARAMS *StdHeader
-  )
-{
-  UINT32      ProcessorPackageType;
-  CPUID_DATA  CpuId;
-
-  LibAmdCpuidRead (0x80000001, &CpuId, NULL);
-  ProcessorPackageType = (UINT32) (CpuId.EBX_Reg >> 28) & 0xF; // bit 31:28
-  return (UINT32) (1 << ProcessorPackageType);
-}
-#endif /* IS_ENABLED(CONFIG_VENDORCODE_FULL_SUPPORT) */
-
-#if IS_ENABLED(CONFIG_VENDORCODE_FULL_SUPPORT)
-/*---------------------------------------------------------------------------------------*/
-/**
- * Returns the package type mask for the processor
- *
- *
- * @param[in]     AccessWidth     Access width
- * @param[in]     Data            data
- * @param[in]     DataMask        data
- * @param[out]    TemData         typecast data
- * @param[out]    TempDataMask    typecast data
- */
-
-VOID
-STATIC
-LibAmdGetDataFromPtr (
-  IN       ACCESS_WIDTH AccessWidth,
-  IN       CONST VOID   *Data,
-  IN       CONST VOID   *DataMask,
-     OUT   UINT32       *TemData,
-     OUT   UINT32       *TempDataMask
-  )
-{
-  switch (AccessWidth) {
-  case AccessWidth8:
-  case AccessS3SaveWidth8:
-    *TemData = (UINT32)*(UINT8 *) Data;
-    *TempDataMask = (UINT32)*(UINT8 *) DataMask;
-    break;
-  case AccessWidth16:
-  case AccessS3SaveWidth16:
-    *TemData = (UINT32)*(UINT16 *) Data;
-    *TempDataMask = (UINT32)*(UINT16 *) DataMask;
-    break;
-  case AccessWidth32:
-  case AccessS3SaveWidth32:
-    *TemData = *(UINT32 *) Data;
-    *TempDataMask = *(UINT32 *) DataMask;
-    break;
-  default:
-    IDS_ERROR_TRAP;
-    break;
-  }
-}
-
-/*---------------------------------------------------------------------------------------*/
-/**
- * Returns the package type mask for the processor
- *
- *
- * @param[in]     AccessWidth     Access width
- * @retval        Width in number of bytes
- */
-
-UINT8
-LibAmdAccessWidth (
-  IN       ACCESS_WIDTH AccessWidth
-  )
-{
-  UINT8 Width;
-
-  switch (AccessWidth) {
-  case AccessWidth8:
-  case AccessS3SaveWidth8:
-    Width = 1;
-    break;
-  case AccessWidth16:
-  case AccessS3SaveWidth16:
-    Width = 2;
-    break;
-  case AccessWidth32:
-  case AccessS3SaveWidth32:
-    Width = 4;
-    break;
-  case AccessWidth64:
-  case AccessS3SaveWidth64:
-    Width = 8;
-    break;
-  default:
-    Width = 0;
-    IDS_ERROR_TRAP;
-    break;
-  }
-  return Width;
-}
-
-AMDLIB_OPTIMIZE
-VOID
-CpuidRead (
-  IN        UINT32      CpuidFcnAddress,
-  OUT       CPUID_DATA  *Value
-  )
-{
-  __cpuid ((int *)Value, CpuidFcnAddress);
-}
-
-AMDLIB_OPTIMIZE
-UINT8
-ReadNumberOfCpuCores(
-  void
-  )
-{
-  CPUID_DATA  Value;
-  CpuidRead (0x80000008, &Value);
-  return   Value.ECX_Reg & 0xff;
-}
-#endif /* IS_ENABLED(CONFIG_VENDORCODE_FULL_SUPPORT) */
-
 BOOLEAN
 IdsErrorStop (
   IN      UINT32 FileCode

-- 
To view, visit https://review.coreboot.org/28091
To unsubscribe, or for help writing mail filters, visit https://review.coreboot.org/settings

Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ic23dcf245b2cee24f7363ca3bb9918eb2f11179c
Gerrit-Change-Number: 28091
Gerrit-PatchSet: 1
Gerrit-Owner: Richard Spiegel <richard.spiegel at silverbackltd.com>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.coreboot.org/pipermail/coreboot-gerrit/attachments/20180814/d1f1f1d3/attachment-0001.html>


More information about the coreboot-gerrit mailing list