From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=45.249.212.190; helo=huawei.com; envelope-from=huangming23@huawei.com; receiver=edk2-devel@lists.01.org Received: from huawei.com (szxga04-in.huawei.com [45.249.212.190]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 515172233379E for ; Tue, 23 Jan 2018 02:56:00 -0800 (PST) Received: from DGGEMS407-HUB.china.huawei.com (unknown [172.30.72.60]) by Forcepoint Email with ESMTP id B0E81423CB687; Tue, 23 Jan 2018 19:01:13 +0800 (CST) Received: from [127.0.0.1] (10.61.17.224) by DGGEMS407-HUB.china.huawei.com (10.3.19.207) with Microsoft SMTP Server id 14.3.361.1; Tue, 23 Jan 2018 19:01:05 +0800 To: Ard Biesheuvel , Ming Huang References: <1516287703-35516-1-git-send-email-huangming23@huawei.com> <1516287703-35516-7-git-send-email-huangming23@huawei.com> CC: Leif Lindholm , linaro-uefi , "edk2-devel@lists.01.org" , Graeme Gregory , , wanghuiqiang , Jason Zhang , Mengfanrong , From: "Huangming (Mark)" Message-ID: <113c1c7b-9747-8514-03f7-ba85e73249f6@huawei.com> Date: Tue, 23 Jan 2018 19:01:05 +0800 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.2.0 MIME-Version: 1.0 In-Reply-To: X-Originating-IP: [10.61.17.224] X-CFilter-Loop: Reflected Subject: Re: [PATCH edk2-platforms v1 06/14] Hisilicon D03/D05: Open SnpPlatform source code X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 23 Jan 2018 10:56:01 -0000 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit On 2018/1/20 19:00, Ard Biesheuvel wrote: > On 18 January 2018 at 15:01, Ming Huang wrote: >> From: Jason Zhang >> >> 1. Open driver source code. >> 2. This code includes network sequence correction >> solution. >> >> Contributed-under: TianoCore Contribution Agreement 1.1 >> Signed-off-by: Jason Zhang >> Signed-off-by: Ming Huang >> Signed-off-by: Heyi Guo >> --- >> Platform/Hisilicon/D03/D03.dsc | 2 + >> Platform/Hisilicon/D03/D03.fdf | 2 +- >> Platform/Hisilicon/D05/D05.dsc | 2 + >> Platform/Hisilicon/D05/D05.fdf | 3 +- >> Silicon/Hisilicon/Drivers/SnpPlatform/SnpPlatform.c | 99 ++++++++++++++++++++ >> Silicon/Hisilicon/Drivers/SnpPlatform/SnpPlatform.h | 43 +++++++++ >> Silicon/Hisilicon/Drivers/SnpPlatform/SnpPlatform.inf | 60 ++++++++++++ >> Silicon/Hisilicon/HisiPkg.dec | 1 + >> Silicon/Hisilicon/Include/Protocol/SnpPlatformProtocol.h | 32 +++++++ >> 9 files changed, 241 insertions(+), 3 deletions(-) >> >> diff --git a/Platform/Hisilicon/D03/D03.dsc b/Platform/Hisilicon/D03/D03.dsc >> index 370e17b..b22afe3 100644 >> --- a/Platform/Hisilicon/D03/D03.dsc >> +++ b/Platform/Hisilicon/D03/D03.dsc >> @@ -404,6 +404,8 @@ >> >> Platform/Hisilicon/D03/Drivers/Ipmi/ipmiInterfaceDxe/IpmiInterfaceDxe.inf >> >> + Silicon/Hisilicon/Drivers/SnpPlatform/SnpPlatform.inf >> + >> MdeModulePkg/Universal/Network/ArpDxe/ArpDxe.inf >> MdeModulePkg/Universal/Network/Dhcp4Dxe/Dhcp4Dxe.inf >> MdeModulePkg/Universal/Network/DpcDxe/DpcDxe.inf >> diff --git a/Platform/Hisilicon/D03/D03.fdf b/Platform/Hisilicon/D03/D03.fdf >> index 6e43228..e93985b 100644 >> --- a/Platform/Hisilicon/D03/D03.fdf >> +++ b/Platform/Hisilicon/D03/D03.fdf >> @@ -242,7 +242,7 @@ READ_LOCK_STATUS = TRUE >> #Network >> # >> >> - INF Platform/Hisilicon/D03/Drivers/Net/SnpPlatform/SnpPlatform.inf >> + INF Silicon/Hisilicon/Drivers/SnpPlatform/SnpPlatform.inf >> INF Platform/Hisilicon/D03/Drivers/Net/SnpPV600Dxe/SnpPV600Dxe.inf >> >> INF MdeModulePkg/Universal/Network/ArpDxe/ArpDxe.inf >> diff --git a/Platform/Hisilicon/D05/D05.dsc b/Platform/Hisilicon/D05/D05.dsc >> index 0d19909..4e19de2 100644 >> --- a/Platform/Hisilicon/D05/D05.dsc >> +++ b/Platform/Hisilicon/D05/D05.dsc >> @@ -541,6 +541,8 @@ >> >> Platform/Hisilicon/D05/Drivers/Ipmi/IpmiInterfaceDxe/IpmiInterfaceDxe.inf >> >> + Silicon/Hisilicon/Drivers/SnpPlatform/SnpPlatform.inf >> + >> MdeModulePkg/Universal/Network/ArpDxe/ArpDxe.inf >> MdeModulePkg/Universal/Network/Dhcp4Dxe/Dhcp4Dxe.inf >> MdeModulePkg/Universal/Network/DpcDxe/DpcDxe.inf >> diff --git a/Platform/Hisilicon/D05/D05.fdf b/Platform/Hisilicon/D05/D05.fdf >> index 9edc679..9873677 100644 >> --- a/Platform/Hisilicon/D05/D05.fdf >> +++ b/Platform/Hisilicon/D05/D05.fdf >> @@ -247,8 +247,7 @@ READ_LOCK_STATUS = TRUE >> # >> #Network >> # >> - >> - INF Platform/Hisilicon/D05/Drivers/Net/SnpPlatform/SnpPlatform.inf >> + INF Silicon/Hisilicon/Drivers/SnpPlatform/SnpPlatform.inf >> INF Platform/Hisilicon/D05/Drivers/Net/SnpPV600Dxe/SnpPV600Dxe.inf >> >> INF MdeModulePkg/Universal/Network/ArpDxe/ArpDxe.inf >> diff --git a/Silicon/Hisilicon/Drivers/SnpPlatform/SnpPlatform.c b/Silicon/Hisilicon/Drivers/SnpPlatform/SnpPlatform.c >> new file mode 100644 >> index 0000000..385c04a >> --- /dev/null >> +++ b/Silicon/Hisilicon/Drivers/SnpPlatform/SnpPlatform.c >> @@ -0,0 +1,99 @@ >> +/** @file >> +* >> +* Copyright (c) 2017, Hisilicon Limited. All rights reserved. >> +* Copyright (c) 2017, 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 >> +* which accompanies this distribution. The full text of the license may be found at >> +* http://opensource.org/licenses/bsd-license.php >> +* >> +* THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, >> +* WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. >> +* >> +**/ >> + >> + >> +#include "SnpPlatform.h" >> + > > STATIC > >> + HISI_PLATFORM_SNP_PROTOCOL mSnpPlatformProtocol[] = { >> + { >> + 4, >> + 1 >> + }, >> + { >> + 5, >> + 1 >> + }, >> + { >> + 2, >> + 0 >> + }, >> + { >> + 3, >> + 0 >> + }, >> + { >> + 0, >> + 1 >> + }, >> + { >> + 1, >> + 1 >> + }, >> + { >> + 6, >> + 0 >> + }, >> + { >> + 7, >> + 0 >> + } >> +}; >> + >> +#define SNP_CONTROLLER_NUMBER sizeof (mSnpPlatformProtocol) / sizeof (HISI_PLATFORM_SNP_PROTOCOL) >> + > > ARRAY_SIZE() > >> +EFI_STATUS >> +EFIAPI >> +SnpPlatformInitialize ( >> + IN EFI_HANDLE ImageHandle, >> + IN EFI_SYSTEM_TABLE *SystemTable >> + ) >> +{ >> + UINTN Loop; >> + SNP_PLATFORM_INSTANCE *PrivateData; >> + EFI_STATUS Status; >> + >> + for (Loop = 0; Loop < SNP_CONTROLLER_NUMBER; Loop++) { >> + if(mSnpPlatformProtocol[Loop].Enable != 1) { >> + continue; >> + } >> + PrivateData = AllocateZeroPool (sizeof(SNP_PLATFORM_INSTANCE)); >> + if (PrivateData == NULL) { >> + DEBUG ((DEBUG_INFO,"SnpPlatformInitialize error 1\n")); >> + return EFI_OUT_OF_RESOURCES; >> + } >> + >> + >> + PrivateData->SnpPlatformProtocol = mSnpPlatformProtocol[Loop]; >> + >> + // >> + // Install the snp protocol, device path protocol >> + // >> + Status = gBS->InstallMultipleProtocolInterfaces ( >> + &PrivateData->Handle, >> + &gHisiSnpPlatformProtocolGuid, >> + &PrivateData->SnpPlatformProtocol, >> + NULL >> + ); >> + if (EFI_ERROR (Status)) { >> + FreePool (PrivateData); >> + DEBUG ((DEBUG_ERROR, "[%a]:[%dL] InstallProtocolInterface fail. %r\n", __FUNCTION__, __LINE__, Status)); > > Line length > > And don't return an error from a loop like this: see the comment in > reply to the previous patch > >> + return Status; >> + } >> + } >> + >> + DEBUG ((DEBUG_INFO,"SnpPlatformInitialize succes!\n")); >> + >> + return EFI_SUCCESS; >> +} >> diff --git a/Silicon/Hisilicon/Drivers/SnpPlatform/SnpPlatform.h b/Silicon/Hisilicon/Drivers/SnpPlatform/SnpPlatform.h >> new file mode 100644 >> index 0000000..031c8d3 >> --- /dev/null >> +++ b/Silicon/Hisilicon/Drivers/SnpPlatform/SnpPlatform.h >> @@ -0,0 +1,43 @@ >> +/** @file >> +* >> +* Copyright (c) 2017, Hisilicon Limited. All rights reserved. >> +* Copyright (c) 2017, 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 >> +* which accompanies this distribution. The full text of the license may be found at >> +* http://opensource.org/licenses/bsd-license.php >> +* >> +* THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, >> +* WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. >> +* >> +**/ >> + >> + >> + >> +#ifndef _SNP_PLATFORM_H_ >> +#define _SNP_PLATFORM_H_ >> + >> +#include >> +#include >> +#include >> +#include >> +#include >> +#include >> +#include >> +#include >> +#include >> +#include >> +#include >> +#include >> +#include >> +#include >> +#include >> +#include >> + >> +typedef struct { >> + UINTN Signature; >> + EFI_HANDLE Handle; >> + HISI_PLATFORM_SNP_PROTOCOL SnpPlatformProtocol; >> +} SNP_PLATFORM_INSTANCE; >> +#endif > > You can move all of this into the .c file > >> diff --git a/Silicon/Hisilicon/Drivers/SnpPlatform/SnpPlatform.inf b/Silicon/Hisilicon/Drivers/SnpPlatform/SnpPlatform.inf >> new file mode 100644 >> index 0000000..804224b >> --- /dev/null >> +++ b/Silicon/Hisilicon/Drivers/SnpPlatform/SnpPlatform.inf >> @@ -0,0 +1,60 @@ >> +#/** @file >> +# >> +# Copyright (c) 2017, Hisilicon Limited. All rights reserved. >> +# Copyright (c) 2017, 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 >> +# which accompanies this distribution. The full text of the license may be found at >> +# http://opensource.org/licenses/bsd-license.php >> +# >> +# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, >> +# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. >> +# >> +#**/ >> + >> +[Defines] >> + INF_VERSION = 0x00010019 >> + BASE_NAME = SnpPlatform >> + FILE_GUID = 102D8FC9-20A4-42eb-AC14-1C98BA5B17A8 >> + MODULE_TYPE = DXE_DRIVER >> + VERSION_STRING = 1.0 >> + ENTRY_POINT = SnpPlatformInitialize >> + >> +[Sources] >> + SnpPlatform.h >> + SnpPlatform.c >> + >> +[Packages] >> + ArmPkg/ArmPkg.dec > > ?? > >> + MdePkg/MdePkg.dec >> + MdeModulePkg/MdeModulePkg.dec >> + Silicon/Hisilicon/HisiPkg.dec >> + >> +[FeaturePcd] >> + >> + >> +[LibraryClasses] >> + ArmLib >> + BaseLib >> + BaseMemoryLib >> + CacheMaintenanceLib >> + DebugLib >> + DxeServicesTableLib >> + IoLib >> + MemoryAllocationLib >> + PlatformSysCtrlLib >> + PcdLib >> + ReportStatusCodeLib >> + UefiLib >> + UefiBootServicesTableLib >> + UefiDriverEntryPoint >> + > > Same question as before: are you really using all of these? There are some Libs which are not using. I will delete it. >> +[Guids] >> + >> +[Protocols] >> + gHisiSnpPlatformProtocolGuid >> + >> +[Depex] >> + TRUE >> + >> diff --git a/Silicon/Hisilicon/HisiPkg.dec b/Silicon/Hisilicon/HisiPkg.dec >> index 9fa94fd..2bb6518 100644 >> --- a/Silicon/Hisilicon/HisiPkg.dec >> +++ b/Silicon/Hisilicon/HisiPkg.dec >> @@ -38,6 +38,7 @@ >> gSataEnableFlagProtocolGuid = {0xc2b3c770, 0x8b4a, 0x4796, {0xb2, 0xcf, 0x1d, 0xee, 0x44, 0xd0, 0x32, 0xf3}} >> gPlatformSasProtocolGuid = {0x40e9829f, 0x3a2c, 0x479a, {0x9a, 0x93, 0x45, 0x7d, 0x13, 0x50, 0x96, 0x5d}} >> gHisiPlatformSasProtocolGuid = {0x20e9829f, 0x3a2c, 0x479a, {0x9a, 0x93, 0x45, 0x7d, 0x13, 0x50, 0x96, 0x6d}} >> + gHisiSnpPlatformProtocolGuid = {0x81321f27, 0xff58, 0x4a1d, {0x99, 0x97, 0xd, 0xcc, 0xfa, 0x82, 0xf4, 0x6f}} >> >> [Guids] >> gHisiTokenSpaceGuid = {0xc8bc553e, 0x12bf, 0x11e6, {0x97, 0x4f, 0x87, 0xf7, 0x7c, 0xfd, 0x52, 0x1d}} >> diff --git a/Silicon/Hisilicon/Include/Protocol/SnpPlatformProtocol.h b/Silicon/Hisilicon/Include/Protocol/SnpPlatformProtocol.h >> new file mode 100644 >> index 0000000..0d9f0b4 >> --- /dev/null >> +++ b/Silicon/Hisilicon/Include/Protocol/SnpPlatformProtocol.h >> @@ -0,0 +1,32 @@ >> +/** @file >> +* >> +* Copyright (c) 2017, Hisilicon Limited. All rights reserved. >> +* Copyright (c) 2017, 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 >> +* which accompanies this distribution. The full text of the license may be found at >> +* http://opensource.org/licenses/bsd-license.php >> +* >> +* THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, >> +* WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. >> +* >> +**/ >> + >> +#ifndef _SNP_PLATFORM_PROTOCOL_H_ >> +#define _SNP_PLATFORM_PROTOCOL_H_ >> +#define HISI_SNP_PLATFORM_PROTOCOL_GUID \ >> + { \ >> + 0x81321f27, 0xff58, 0x4a1d, 0x99, 0x97, 0xd, 0xcc, 0xfa, 0x82, 0xf4, 0x6f \ >> + } >> + >> +typedef struct _HISI_PLATFORM_SNP_PROTOCOL HISI_PLATFORM_SNP_PROTOCOL; >> + >> +struct _HISI_PLATFORM_SNP_PROTOCOL { >> + UINT32 ControllerId; >> + UINT32 Enable; >> +}; >> + >> +extern EFI_GUID gHisiSnpPlatformProtocolGuid; >> + >> +#endif >> -- >> 1.9.1 >> > > . > -- Best Regards, Ming