在 8/4/2018 5:28 PM, Leif Lindholm 写道:
> 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'.
Should be Status.
>
>> + 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?
Yes, modify it in v2.
>
>> + Cpu0CardType = (UINT8) (PresentSts >> 8);
>> + }
>> +
>> + // Offset 0x40: Bit6 = 1 CPU1 Riser present
>> + if ((PresentSts & BIT6) != 0) {
>
> Can we have a #define instead?
Yes
>
>> + 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.
All comments will apply in v2.
Thanks.
>
> /
> 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