diff mbox

[Linaro-uefi,v2,13/24] Hisilicon/Serdes: add support for D05

Message ID 1476839040-94656-2-git-send-email-heyi.guo@linaro.org
State Superseded
Headers show

Commit Message

gary guo Oct. 19, 2016, 1:04 a.m. UTC
From: Peicong Li <lipeicong@huawei.com>

Modify OemGetSerdesParam interface to support D05, for it has 2 sockets
on the board, and each socket has 2 IO super clusters. The interface
is modified to support getting serdes parameter for both IO super clusters
(denoted as A and B) on each socket.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Peicong Li <lipeicong@huawei.com>
---
 .../Type09/MiscSystemSlotDesignationFunction.c            | 15 ++++++++-------
 Chips/Hisilicon/Hi1610/Include/Library/SerdesLib.h        |  2 +-
 Chips/Hisilicon/Pv660/Include/Library/SerdesLib.h         |  2 +-
 .../Hisilicon/D02/Library/OemMiscLibD02/BoardFeatureD02.c |  8 ++++----
 .../D03/Library/OemMiscLib2P/BoardFeature2PHi1610.c       |  6 +++---
 5 files changed, 17 insertions(+), 16 deletions(-)
diff mbox

Patch

diff --git a/Chips/Hisilicon/Drivers/Smbios/SmbiosMiscDxe/Type09/MiscSystemSlotDesignationFunction.c b/Chips/Hisilicon/Drivers/Smbios/SmbiosMiscDxe/Type09/MiscSystemSlotDesignationFunction.c
index a0e3de3..bc988d8 100644
--- a/Chips/Hisilicon/Drivers/Smbios/SmbiosMiscDxe/Type09/MiscSystemSlotDesignationFunction.c
+++ b/Chips/Hisilicon/Drivers/Smbios/SmbiosMiscDxe/Type09/MiscSystemSlotDesignationFunction.c
@@ -73,9 +73,10 @@  UpdateSlotUsage(
   )
 {
     EFI_STATUS        Status;
-    serdes_param_t    sSerdesParam;
+    serdes_param_t    SerdesParamA;
+    serdes_param_t    SerdesParamB;
 
-    Status = OemGetSerdesParam (&sSerdesParam);
+    Status = OemGetSerdesParam (&SerdesParamA, &SerdesParamB, 0);
     if(EFI_ERROR(Status))
     {
         DEBUG((EFI_D_ERROR, "[%a]:[%dL] OemGetSerdesParam failed %r\n", __FUNCTION__, __LINE__, Status));
@@ -85,7 +86,7 @@  UpdateSlotUsage(
     //
     // PCIE0
     //
-    if (((UINTN)InputData == (UINTN)&MiscSystemSlotDesignationPcie0Data) && sSerdesParam.hilink1_mode == EM_HILINK1_PCIE0_8LANE)
+    if (((UINTN)InputData == (UINTN)&MiscSystemSlotDesignationPcie0Data) && SerdesParamA.hilink1_mode == EM_HILINK1_PCIE0_8LANE)
     {
         InputData->CurrentUsage = SlotUsageAvailable;
     }
@@ -95,7 +96,7 @@  UpdateSlotUsage(
     //
     if ((UINTN)InputData == (UINTN)&MiscSystemSlotDesignationPcie1Data)
     {
-        if (sSerdesParam.hilink0_mode == EM_HILINK0_PCIE1_4LANE_PCIE2_4LANE)
+        if (SerdesParamA.hilink0_mode == EM_HILINK0_PCIE1_4LANE_PCIE2_4LANE)
         {
             InputData->SlotDataBusWidth = SlotDataBusWidth4X;
         }
@@ -106,12 +107,12 @@  UpdateSlotUsage(
     //
     if ((UINTN)InputData == (UINTN)&MiscSystemSlotDesignationPcie2Data)
     {
-        if (sSerdesParam.hilink0_mode == EM_HILINK0_PCIE1_4LANE_PCIE2_4LANE)
+        if (SerdesParamA.hilink0_mode == EM_HILINK0_PCIE1_4LANE_PCIE2_4LANE)
         {
             InputData->SlotDataBusWidth = SlotDataBusWidth4X;
             InputData->CurrentUsage = SlotUsageAvailable;
         }
-        else if (sSerdesParam.hilink2_mode == EM_HILINK2_PCIE2_8LANE)
+        else if (SerdesParamA.hilink2_mode == EM_HILINK2_PCIE2_8LANE)
         {
             InputData->CurrentUsage = SlotUsageAvailable;
         }
@@ -120,7 +121,7 @@  UpdateSlotUsage(
     //
     // PCIE3
     //
-    if (((UINTN)InputData == (UINTN)&MiscSystemSlotDesignationPcie3Data) && sSerdesParam.hilink5_mode == EM_HILINK5_PCIE3_4LANE)
+    if (((UINTN)InputData == (UINTN)&MiscSystemSlotDesignationPcie3Data) && SerdesParamA.hilink5_mode == EM_HILINK5_PCIE3_4LANE)
     {
         InputData->CurrentUsage = SlotUsageAvailable;
     }
diff --git a/Chips/Hisilicon/Hi1610/Include/Library/SerdesLib.h b/Chips/Hisilicon/Hi1610/Include/Library/SerdesLib.h
index 700d40e..3bd5a0f 100755
--- a/Chips/Hisilicon/Hi1610/Include/Library/SerdesLib.h
+++ b/Chips/Hisilicon/Hi1610/Include/Library/SerdesLib.h
@@ -82,7 +82,7 @@  typedef struct {
     UINT32 DsCfg;
 } SERDES_POLARITY_INVERT;
 
-EFI_STATUS OemGetSerdesParam (serdes_param_t *Param);
+EFI_STATUS OemGetSerdesParam (serdes_param_t *ParamA, serdes_param_t *ParamB, UINT32 SocketId);
 extern SERDES_POLARITY_INVERT gSerdesPolarityTxDesc[];
 extern SERDES_POLARITY_INVERT gSerdesPolarityRxDesc[];
 UINT32 GetEthType(UINT8 EthChannel);
diff --git a/Chips/Hisilicon/Pv660/Include/Library/SerdesLib.h b/Chips/Hisilicon/Pv660/Include/Library/SerdesLib.h
index 070934b..b6c7e20 100644
--- a/Chips/Hisilicon/Pv660/Include/Library/SerdesLib.h
+++ b/Chips/Hisilicon/Pv660/Include/Library/SerdesLib.h
@@ -76,7 +76,7 @@  typedef struct {
 } SERDES_POLARITY_INVERT;
 
 
-EFI_STATUS OemGetSerdesParam (serdes_param_t *Param);
+EFI_STATUS OemGetSerdesParam (serdes_param_t *ParamA, serdes_param_t *ParamB, UINT32 SocketId);
 extern SERDES_POLARITY_INVERT gSerdesPolarityTxDesc[];
 extern SERDES_POLARITY_INVERT gSerdesPolarityRxDesc[];
 UINT32 GetEthType(UINT8 EthChannel);
diff --git a/Platforms/Hisilicon/D02/Library/OemMiscLibD02/BoardFeatureD02.c b/Platforms/Hisilicon/D02/Library/OemMiscLibD02/BoardFeatureD02.c
index d4aa84a..2dc1464 100644
--- a/Platforms/Hisilicon/D02/Library/OemMiscLibD02/BoardFeatureD02.c
+++ b/Platforms/Hisilicon/D02/Library/OemMiscLibD02/BoardFeatureD02.c
@@ -59,15 +59,15 @@  serdes_param_t gSerdesParam = {
     .hilink5_mode = EM_HILINK5_SAS1_4LANE,
     };
 
-EFI_STATUS OemGetSerdesParam (serdes_param_t *Param)
+EFI_STATUS OemGetSerdesParam (serdes_param_t *ParamA, serdes_param_t *ParamB, UINT32 SocketId)
 {
-  if (NULL == Param)
+  if (ParamA == NULL)
   {
-    DEBUG((EFI_D_ERROR, "[%a]:[%dL] Param == NULL!\n", __FUNCTION__, __LINE__));
+    DEBUG((EFI_D_ERROR, "[%a]:[%dL] ParamA == NULL!\n", __FUNCTION__, __LINE__));
     return EFI_INVALID_PARAMETER;
   }
 
-  (VOID) CopyMem(Param, &gSerdesParam, sizeof(*Param));
+  (VOID) CopyMem(ParamA, &gSerdesParam, sizeof(*ParamA));
   return EFI_SUCCESS;
 }
 
diff --git a/Platforms/Hisilicon/D03/Library/OemMiscLib2P/BoardFeature2PHi1610.c b/Platforms/Hisilicon/D03/Library/OemMiscLib2P/BoardFeature2PHi1610.c
index 23c55e1..7e4b9d0 100644
--- a/Platforms/Hisilicon/D03/Library/OemMiscLib2P/BoardFeature2PHi1610.c
+++ b/Platforms/Hisilicon/D03/Library/OemMiscLib2P/BoardFeature2PHi1610.c
@@ -75,15 +75,15 @@  serdes_param_t gSerdesParam1 = {
     .use_ssc      = 0,
     };
 
-EFI_STATUS OemGetSerdesParam (serdes_param_t *Param)
+EFI_STATUS OemGetSerdesParam (serdes_param_t *ParamA, serdes_param_t *ParamB, UINT32 SocketId)
 {
-  if (NULL == Param)
+  if (ParamA == NULL)
   {
     DEBUG((EFI_D_ERROR, "[%a]:[%dL] Param == NULL!\n", __FUNCTION__, __LINE__));
     return EFI_INVALID_PARAMETER;
   }
 
-  (VOID) CopyMem(Param, &gSerdesParam, sizeof(*Param));
+  (VOID) CopyMem(ParamA, &gSerdesParam, sizeof(*ParamA));
   return EFI_SUCCESS;
 }