On Tue, Jul 24, 2018 at 03:09:09PM +0800, Ming Huang wrote:
> From: Sun Yuanchen <[email protected]>
>
> Move board level code to OemMiscLibD0x for unifying D0x.
>
> Contributed-under: TianoCore Contribution Agreement 1.1
> Signed-off-by: Sun Yuanchen <[email protected]>
> Signed-off-by: Ming Huang <[email protected]>
> Signed-off-by: Heyi Guo <[email protected]>
> ---
> Platform/Hisilicon/D03/Library/OemMiscLib2P/OemMiscLib2PHi1610.c | 24
> ++++++
> Platform/Hisilicon/D03/Library/OemMiscLib2P/OemMiscLib2PHi1610.inf | 1 +
> Platform/Hisilicon/D05/Library/OemMiscLibD05/OemMiscLibD05.c | 27
> +++++-
> Platform/Hisilicon/D05/Library/OemMiscLibD05/OemMiscLibD05.inf | 1 +
> Platform/Hisilicon/D06/Library/OemMiscLibD06/OemMiscLibD06.c | 89
> ++++++++++++++++++++
> Platform/Hisilicon/D06/Library/OemMiscLibD06/OemMiscLibD06.inf | 4 +
> Silicon/Hisilicon/Drivers/Smbios/AddSmbiosType9/AddSmbiosType9.c | 14 +--
> Silicon/Hisilicon/Include/Library/OemMiscLib.h | 1 +
> 8 files changed, 148 insertions(+), 13 deletions(-)
>
> diff --git a/Platform/Hisilicon/D03/Library/OemMiscLib2P/OemMiscLib2PHi1610.c
> b/Platform/Hisilicon/D03/Library/OemMiscLib2P/OemMiscLib2PHi1610.c
> index fa1039bda1..7ca184b666 100644
> --- a/Platform/Hisilicon/D03/Library/OemMiscLib2P/OemMiscLib2PHi1610.c
> +++ b/Platform/Hisilicon/D03/Library/OemMiscLib2P/OemMiscLib2PHi1610.c
> @@ -15,6 +15,7 @@
>
> #include <Uefi.h>
>
> +#include <Library/BaseMemoryLib.h>
> #include <Library/DebugLib.h>
> #include <Library/IoLib.h>
> #include <Library/TimerLib.h>
> @@ -31,6 +32,29 @@ REPORT_PCIEDIDVID2BMC
> PcieDeviceToReport[PCIEDEVICE_REPORT_MAX] = {
> {0xFFFF,0xFFFF,0xFFFF,0xFFFF}
> };
>
> +REPORT_PCIEDIDVID2BMC PcieDeviceToReport_2P[PCIEDEVICE_REPORT_MAX] = {
> + {0x79,0,0,0},
> + {0xFF,0xFF,0xFF,1},
> + {0xC1,0,0,2},
> + {0xF9,0,0,3},
> + {0xFF,0xFF,0xFF,4},
> + {0x11,0,0,5},
> + {0x31,0,0,6},
> + {0x21,0,0,7}
> +};
> +
> +VOID
> +GetPciDidVid (
> + REPORT_PCIEDIDVID2BMC *Report
> + )
> +{
> + if (OemIsMpBoot ()) {
> + (VOID) CopyMem ((VOID *) Report, (VOID *) PcieDeviceToReport_2P, sizeof
> (PcieDeviceToReport_2P));
No space between (VOID) and copymem.
> + } else {
> + (VOID) CopyMem ((VOID *) Report, (VOID *) PcieDeviceToReport, sizeof
> (PcieDeviceToReport));
No space between (VOID) and copymem.
> + }
> +}
> +
> // Right now we only support 1P
> BOOLEAN OemIsSocketPresent (UINTN Socket)
> {
> diff --git
> a/Platform/Hisilicon/D03/Library/OemMiscLib2P/OemMiscLib2PHi1610.inf
> b/Platform/Hisilicon/D03/Library/OemMiscLib2P/OemMiscLib2PHi1610.inf
> index 310bbaea84..0fa7fdf80f 100644
> --- a/Platform/Hisilicon/D03/Library/OemMiscLib2P/OemMiscLib2PHi1610.inf
> +++ b/Platform/Hisilicon/D03/Library/OemMiscLib2P/OemMiscLib2PHi1610.inf
> @@ -34,6 +34,7 @@
> Silicon/Hisilicon/HisiPkg.dec
>
> [LibraryClasses]
> + BaseMemoryLib
> PcdLib
> TimerLib
>
> diff --git a/Platform/Hisilicon/D05/Library/OemMiscLibD05/OemMiscLibD05.c
> b/Platform/Hisilicon/D05/Library/OemMiscLibD05/OemMiscLibD05.c
> index b17eeada16..af3982c2c0 100644
> --- a/Platform/Hisilicon/D05/Library/OemMiscLibD05/OemMiscLibD05.c
> +++ b/Platform/Hisilicon/D05/Library/OemMiscLibD05/OemMiscLibD05.c
> @@ -1,7 +1,7 @@
> /** @file
> *
> -* Copyright (c) 2016, Hisilicon Limited. All rights reserved.
> -* Copyright (c) 2016, Linaro Limited. All rights reserved.
> +* Copyright (c) 2016 - 2018, Hisilicon Limited. All rights reserved.
> +* Copyright (c) 2016 - 2018, Linaro Limited. All rights reserved.
> *
> * This program and the accompanying materials
> * are licensed and made available under the terms and conditions of the BSD
> License
> @@ -16,6 +16,7 @@
> #include <PlatformArch.h>
> #include <Uefi.h>
>
> +#include <Library/BaseMemoryLib.h>
> #include <Library/DebugLib.h>
> #include <Library/IoLib.h>
> #include <Library/LpcLib.h>
> @@ -37,6 +38,28 @@ REPORT_PCIEDIDVID2BMC
> PcieDeviceToReport[PCIEDEVICE_REPORT_MAX] = {
> {0xFFFF,0xFFFF,0xFFFF,0xFFFF}
> };
>
> +REPORT_PCIEDIDVID2BMC PcieDeviceToReport_2P[PCIEDEVICE_REPORT_MAX] = {
> + {0x79,0,0,0},
> + {0xFF,0xFF,0xFF,1},
> + {0xC1,0,0,2},
> + {0xF9,0,0,3},
> + {0xFF,0xFF,0xFF,4},
> + {0x11,0,0,5},
> + {0x31,0,0,6},
> + {0x21,0,0,7}
> +};
> +
> +VOID
> +GetPciDidVid (
> + REPORT_PCIEDIDVID2BMC *Report
> + )
> +{
> + if (OemIsMpBoot ()) {
> + (VOID) CopyMem ((VOID *) Report, (VOID *) PcieDeviceToReport_2P, sizeof
> (PcieDeviceToReport_2P));
No space between (VOID) and CopyMem.
> + } else {
> + (VOID) CopyMem ((VOID *) Report, (VOID *) PcieDeviceToReport, sizeof
> (PcieDeviceToReport));
No space after (VOID) and CopyMem.
> + }
> +}
>
> BOOLEAN OemIsSocketPresent (UINTN Socket)
> {
> diff --git a/Platform/Hisilicon/D05/Library/OemMiscLibD05/OemMiscLibD05.inf
> b/Platform/Hisilicon/D05/Library/OemMiscLibD05/OemMiscLibD05.inf
> index bf44ff7440..022c3e940a 100644
> --- a/Platform/Hisilicon/D05/Library/OemMiscLibD05/OemMiscLibD05.inf
> +++ b/Platform/Hisilicon/D05/Library/OemMiscLibD05/OemMiscLibD05.inf
> @@ -33,6 +33,7 @@
> Silicon/Hisilicon/HisiPkg.dec
>
> [LibraryClasses]
> + BaseMemoryLib
> PcdLib
> TimerLib
>
> diff --git a/Platform/Hisilicon/D06/Library/OemMiscLibD06/OemMiscLibD06.c
> b/Platform/Hisilicon/D06/Library/OemMiscLibD06/OemMiscLibD06.c
> index 009a53b2c8..f6bc3b7e6f 100644
> --- a/Platform/Hisilicon/D06/Library/OemMiscLibD06/OemMiscLibD06.c
> +++ b/Platform/Hisilicon/D06/Library/OemMiscLibD06/OemMiscLibD06.c
> @@ -15,6 +15,8 @@
>
> #include <Uefi.h>
> #include <PlatformArch.h>
> +#include <Library/BaseMemoryLib.h>
> +#include <Library/CpldD06.h>
> #include <Library/DebugLib.h>
> #include <Library/IoLib.h>
> #include <Library/LpcLib.h>
> @@ -33,6 +35,93 @@ REPORT_PCIEDIDVID2BMC
> PcieDeviceToReport[PCIEDEVICE_REPORT_MAX] = {
> {0xFFFF,0xFFFF,0xFFFF,0xFFFF}
> };
>
> +//Cpu0 Riser type is (X16 + X8) & Cpu1 Riser type is (X16 + X8)
> +REPORT_PCIEDIDVID2BMC PcieDeviceToReport_2P_Type1 [PCIEDEVICE_REPORT_MAX] = {
> + {0x01,0,0,0},
> + {0x03,0,0,1},
> + {0xFF,0xFF,0xFF,2},
> + {0x81,0,0,3},
> + {0x84,0,0,4},
> + {0xFF,0xFF,0xFF,5}
> +};
> +
> +//Cpu0 Riser type is (X16 + X8) & Cpu1 Riser type is (3 * X8)
> +REPORT_PCIEDIDVID2BMC PcieDeviceToReport_2P_Type2 [PCIEDEVICE_REPORT_MAX] = {
> + {0x01,0,0,0},
> + {0x03,0,0,1},
> + {0xFF,0xFF,0xFF,2},
> + {0xFF,0xFF,0xFF,3},
> + {0x81,0,0,4},
> + {0x85,0,0,5}
> +};
> +
> +//Cpu0 Riser type is (3 * X8) & Cpu1 Riser type is (X16 + X8)
> +REPORT_PCIEDIDVID2BMC PcieDeviceToReport_2P_Type3 [PCIEDEVICE_REPORT_MAX] = {
> + {0xFF,0xFF,0xFF,0},
> + {0x01,0,0,1},
> + {0x04,0,0,2},
> + {0x81,0,0,3},
> + {0x84,0,0,4},
> + {0xFF,0xFF,0xFF,5}
> +};
> +
> +//Cpu0 Riser type is (3 * X8) & Cpu1 Riser type is (3 * X8)
> +REPORT_PCIEDIDVID2BMC PcieDeviceToReport_2P_Type4 [PCIEDEVICE_REPORT_MAX] = {
> + {0xFF,0xFF,0xFF,0},
> + {0x01,0,0,1},
> + {0x04,0,0,2},
> + {0xFF,0xFF,0xFF,3},
> + {0x81,0,0,4},
> + {0x85,0,0,5}
> +};
> +
> +VOID
> +GetPciDidVid (
> + REPORT_PCIEDIDVID2BMC *Report
> + )
> +{
> + UINT32 PresentSts;
What is 'Sts'.
> + UINT32 CardType;
> + UINT8 Cpu0CardType = 0;
> + UINT8 Cpu1CardType = 0;
> +
> + PresentSts = MmioRead32 (CPLD_BASE_ADDRESS + CPLD_RISER_PRSNT_FLAG);
> + CardType = MmioRead32 (CPLD_BASE_ADDRESS + CPLD_RISER2_BOARD_ID);
> +
> + // Offset 0x40: Bit7 = 1 CPU0 Riser present
> + if ((PresentSts & BIT7) != 0) {
Can we have a #define instead?
> + Cpu0CardType = (UINT8) (PresentSts >> 8);
> + }
> +
> + // Offset 0x40: Bit6 = 1 CPU1 Riser present
> + if ((PresentSts & BIT6) != 0) {
Can we have a #define instead?
> + Cpu1CardType = (UINT8)CardType;
> + }
> +
> + if (OemIsMpBoot ()) {
> + if (Cpu0CardType == CPLD_X16_X8_BOARD_ID) {
> + if (Cpu1CardType == CPLD_X16_X8_BOARD_ID) {
> + (VOID) CopyMem ((VOID *) Report, (VOID *)
> PcieDeviceToReport_2P_Type1,
No space between (VOID) and CopyMem. (Apply throughout.)
No space after (VOID *). (Apply throughout.)
> + sizeof (PcieDeviceToReport_2P_Type1));
> + } else {
> + (VOID) CopyMem ((VOID *) Report, (VOID *)
> PcieDeviceToReport_2P_Type2,
> + sizeof (PcieDeviceToReport_2P_Type2));
> + }
> + } else {
> + if (Cpu1CardType == CPLD_X16_X8_BOARD_ID) {
> + (VOID) CopyMem ((VOID *) Report, (VOID *)
> PcieDeviceToReport_2P_Type3,
> + sizeof (PcieDeviceToReport_2P_Type3));
> + } else {
> + (VOID) CopyMem ((VOID *) Report, (VOID *)
> PcieDeviceToReport_2P_Type4,
> + sizeof (PcieDeviceToReport_2P_Type4));
> + }
> + }
> + } else {
> + (VOID) CopyMem ((VOID *) Report, (VOID *) PcieDeviceToReport, sizeof
> (PcieDeviceToReport));
Long line.
/
Leif
> + }
> +}
> +
> +
> // Right now we only support 1P
> BOOLEAN
> OemIsSocketPresent (
> diff --git a/Platform/Hisilicon/D06/Library/OemMiscLibD06/OemMiscLibD06.inf
> b/Platform/Hisilicon/D06/Library/OemMiscLibD06/OemMiscLibD06.inf
> index acb7366078..9a6d06ef45 100644
> --- a/Platform/Hisilicon/D06/Library/OemMiscLibD06/OemMiscLibD06.inf
> +++ b/Platform/Hisilicon/D06/Library/OemMiscLibD06/OemMiscLibD06.inf
> @@ -30,9 +30,13 @@
> ArmPkg/ArmPkg.dec
> MdeModulePkg/MdeModulePkg.dec
> MdePkg/MdePkg.dec
> + Platform/Hisilicon/D06/D06.dec
> Silicon/Hisilicon/HisiPkg.dec
>
> [LibraryClasses]
> + BaseMemoryLib
> + CpldIoLib
> + IoLib
> PcdLib
> TimerLib
> SerdesLib
> diff --git a/Silicon/Hisilicon/Drivers/Smbios/AddSmbiosType9/AddSmbiosType9.c
> b/Silicon/Hisilicon/Drivers/Smbios/AddSmbiosType9/AddSmbiosType9.c
> index 8d8dacd3e0..cc1131577d 100644
> --- a/Silicon/Hisilicon/Drivers/Smbios/AddSmbiosType9/AddSmbiosType9.c
> +++ b/Silicon/Hisilicon/Drivers/Smbios/AddSmbiosType9/AddSmbiosType9.c
> @@ -18,12 +18,6 @@
> extern SMBIOS_TABLE_TYPE9 gPcieSlotInfo[];
> extern UINT8 OemGetPcieSlotNumber ();
>
> -REPORT_PCIEDIDVID2BMC PcieDeviceToReport_2P[PCIEDEVICE_REPORT_MAX] = {
> - {67,0,0,0},
> - {225,0,0,3},
> - {0xFFFF,0xFFFF,0xFFFF,0xFFFF},
> - {0xFFFF,0xFFFF,0xFFFF,0xFFFF}
> -};
> VOID
> EFIAPI
> UpdateSmbiosType9Info(
> @@ -41,11 +35,9 @@ UpdateSmbiosType9Info(
> UINTN FunctionNumber;
> UINTN Index;
> REPORT_PCIEDIDVID2BMC
> ReportPcieDidVid[PCIEDEVICE_REPORT_MAX];
> - if(OemIsMpBoot()){
> - (VOID)CopyMem((VOID *)ReportPcieDidVid,(VOID
> *)PcieDeviceToReport_2P,sizeof(PcieDeviceToReport_2P));
> - } else {
> - (VOID)CopyMem((VOID *)ReportPcieDidVid,(VOID
> *)PcieDeviceToReport,sizeof(PcieDeviceToReport));
> - }
> +
> + GetPciDidVid ((VOID *) ReportPcieDidVid);
> +
> Status = gBS->LocateHandleBuffer (
> ByProtocol,
> &gEfiPciIoProtocolGuid,
> diff --git a/Silicon/Hisilicon/Include/Library/OemMiscLib.h
> b/Silicon/Hisilicon/Include/Library/OemMiscLib.h
> index 517111e762..c6eb7aed1e 100644
> --- a/Silicon/Hisilicon/Include/Library/OemMiscLib.h
> +++ b/Silicon/Hisilicon/Include/Library/OemMiscLib.h
> @@ -30,6 +30,7 @@ typedef struct _REPORT_PCIEDIDVID2BMC{
> UINTN Slot;
> }REPORT_PCIEDIDVID2BMC;
> extern REPORT_PCIEDIDVID2BMC PcieDeviceToReport[PCIEDEVICE_REPORT_MAX];
> +extern VOID GetPciDidVid (REPORT_PCIEDIDVID2BMC *Report);
>
> BOOLEAN OemIsSocketPresent (UINTN Socket);
> VOID CoreSelectBoot(VOID);
> --
> 2.17.0
>
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.01.org/mailman/listinfo/edk2-devel