diff mbox series

[edk2,edk2-platforms,v1,24/38] Platform/Hisilicon/D06: Add OemNicConfig2P Driver

Message ID 20180724070922.63362-25-ming.huang@linaro.org
State New
Headers show
Series Upload for D06 platform | expand

Commit Message

Ming Huang July 24, 2018, 7:09 a.m. UTC
From: shaochangliang <shaochangliang@huawei.com>


This Driver provide Get/Set Mac function.

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: shaochangliang <shaochangliang@huawei.com>

Signed-off-by: Ming Huang <ming.huang@linaro.org>

Signed-off-by: Heyi Guo <heyi.guo@linaro.org>

---
 Platform/Hisilicon/D06/D06.dsc                                         |  2 +-
 Platform/Hisilicon/D06/D06.fdf                                         |  2 +-
 Platform/Hisilicon/D06/Drivers/OemNicConfig2PHi1620/OemNicConfig.h     | 25 +++++++
 Platform/Hisilicon/D06/Drivers/OemNicConfig2PHi1620/OemNicConfig2P.c   | 71 ++++++++++++++++++++
 Platform/Hisilicon/D06/Drivers/OemNicConfig2PHi1620/OemNicConfig2P.inf | 43 ++++++++++++
 5 files changed, 141 insertions(+), 2 deletions(-)

-- 
2.17.0

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel

Comments

Leif Lindholm Aug. 3, 2018, 3:23 p.m. UTC | #1
On Tue, Jul 24, 2018 at 03:09:08PM +0800, Ming Huang wrote:
> From: shaochangliang <shaochangliang@huawei.com>

> 

> This Driver provide Get/Set Mac function.

> 

> Contributed-under: TianoCore Contribution Agreement 1.1

> Signed-off-by: shaochangliang <shaochangliang@huawei.com>

> Signed-off-by: Ming Huang <ming.huang@linaro.org>

> Signed-off-by: Heyi Guo <heyi.guo@linaro.org>

> ---

>  Platform/Hisilicon/D06/D06.dsc                                         |  2 +-

>  Platform/Hisilicon/D06/D06.fdf                                         |  2 +-

>  Platform/Hisilicon/D06/Drivers/OemNicConfig2PHi1620/OemNicConfig.h     | 25 +++++++

>  Platform/Hisilicon/D06/Drivers/OemNicConfig2PHi1620/OemNicConfig2P.c   | 71 ++++++++++++++++++++

>  Platform/Hisilicon/D06/Drivers/OemNicConfig2PHi1620/OemNicConfig2P.inf | 43 ++++++++++++

>  5 files changed, 141 insertions(+), 2 deletions(-)

> 

> diff --git a/Platform/Hisilicon/D06/D06.dsc b/Platform/Hisilicon/D06/D06.dsc

> index 744a4a0d6d..49322f8304 100644

> --- a/Platform/Hisilicon/D06/D06.dsc

> +++ b/Platform/Hisilicon/D06/D06.dsc

> @@ -289,7 +289,7 @@

>    #

>    ArmPkg/Drivers/CpuDxe/CpuDxe.inf

>    MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf

> -

> +  Platform/Hisilicon/D06/Drivers/OemNicConfig2PHi1620/OemNicConfig2P.inf

>  

>  !if $(SECURE_BOOT_ENABLE) == TRUE

>    MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf {

> diff --git a/Platform/Hisilicon/D06/D06.fdf b/Platform/Hisilicon/D06/D06.fdf

> index 1c6ee4e0e4..e65dddd4e9 100644

> --- a/Platform/Hisilicon/D06/D06.fdf

> +++ b/Platform/Hisilicon/D06/D06.fdf

> @@ -174,7 +174,7 @@ READ_LOCK_STATUS   = TRUE

>    INF MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf

>    INF Platform/Hisilicon/D06/Drivers/SFC/SfcDxeDriver.inf

>  

> -

> +  INF Platform/Hisilicon/D06/Drivers/OemNicConfig2PHi1620/OemNicConfig2P.inf

>    INF Silicon/Hisilicon/Drivers/FlashFvbDxe/FlashFvbDxe.inf

>    INF MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteDxe.inf

>    INF MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf

> diff --git a/Platform/Hisilicon/D06/Drivers/OemNicConfig2PHi1620/OemNicConfig.h b/Platform/Hisilicon/D06/Drivers/OemNicConfig2PHi1620/OemNicConfig.h

> new file mode 100644

> index 0000000000..35228fdf1d

> --- /dev/null

> +++ b/Platform/Hisilicon/D06/Drivers/OemNicConfig2PHi1620/OemNicConfig.h

> @@ -0,0 +1,25 @@

> +/** @file

> +*

> +*  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

> +*  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 __OEM_NIC_CONFIG_H__

> +#define __OEM_NIC_CONFIG_H__

> +

> +#include <Uefi.h>

> +#include <Library/DebugLib.h>

> +#include <Library/IoLib.h>

> +#include <Library/OemNicLib.h>

> +#include <Library/UefiBootServicesTableLib.h>

> +#include <Protocol/HisiBoardNicProtocol.h>

> +#endif

> diff --git a/Platform/Hisilicon/D06/Drivers/OemNicConfig2PHi1620/OemNicConfig2P.c b/Platform/Hisilicon/D06/Drivers/OemNicConfig2PHi1620/OemNicConfig2P.c

> new file mode 100644

> index 0000000000..7e2cee3b86

> --- /dev/null

> +++ b/Platform/Hisilicon/D06/Drivers/OemNicConfig2PHi1620/OemNicConfig2P.c

> @@ -0,0 +1,71 @@

> +/** @file

> +*

> +*  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

> +*  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 <OemNicConfig.h>

> +

> +

> +EFI_STATUS

> +EFIAPI OemGetMac2P (

> +  IN OUT EFI_MAC_ADDRESS *Mac,

> +  IN     UINTN           Port

> +  )

> +{

> +  OemGetMac (Mac, Port);

> +

> +  return EFI_SUCCESS;

> +}

> +

> +EFI_STATUS

> +EFIAPI OemSetMac2P (

> +  IN EFI_MAC_ADDRESS *Mac,

> +  IN UINTN           Port

> +  )

> +{

> +  OemSetMac (Mac, Port);

> +

> +  return EFI_SUCCESS;

> +}

> +

> +HISI_BOARD_NIC_PROTOCOL mHisiBoardNicProtocol2P = {

> +  .GetMac = OemGetMac2P,

> +  .SetMac = OemSetMac2P,

> +};

> +

> +

> +EFI_STATUS

> +EFIAPI

> +OemNicConfigEntry (

> +  IN EFI_HANDLE           ImageHandle,

> +  IN EFI_SYSTEM_TABLE     *SystemTable

> +  )

> +{

> +  EFI_STATUS Status;

> +

> +  Status = gBS->InstallProtocolInterface (

> +    &ImageHandle,


Indent to function name (InstallP...), not variable name.

/
    Leif
    
> +    &gHisiBoardNicProtocolGuid,

> +    EFI_NATIVE_INTERFACE,

> +    &mHisiBoardNicProtocol2P

> +    );

> +

> +  if (EFI_ERROR (Status)) {

> +    DEBUG ((DEBUG_ERROR, "[%a]:[%dL] Install Protocol failed %r\n",

> +        __FUNCTION__, __LINE__, Status));

> +    return Status;

> +  }

> +

> +  return EFI_SUCCESS;

> +}

> +

> diff --git a/Platform/Hisilicon/D06/Drivers/OemNicConfig2PHi1620/OemNicConfig2P.inf b/Platform/Hisilicon/D06/Drivers/OemNicConfig2PHi1620/OemNicConfig2P.inf

> new file mode 100644

> index 0000000000..a91f2b6005

> --- /dev/null

> +++ b/Platform/Hisilicon/D06/Drivers/OemNicConfig2PHi1620/OemNicConfig2P.inf

> @@ -0,0 +1,43 @@

> +#/** @file

> +#

> +#    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

> +#    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                    = 0x0001001A

> +  BASE_NAME                      = OemNicConfigPangea

> +  FILE_GUID                      = edc95319-ebe9-4c38-96af-1d203fb85231

> +  MODULE_TYPE                    = DXE_DRIVER

> +  VERSION_STRING                 = 1.0

> +  ENTRY_POINT                    = OemNicConfigEntry

> +

> +[Sources.common]

> +  OemNicConfig2P.c

> +

> +[Packages]

> +  MdeModulePkg/MdeModulePkg.dec

> +  MdePkg/MdePkg.dec

> +  Silicon/Hisilicon/HisiPkg.dec

> +

> +[Protocols]

> +  gHisiBoardNicProtocolGuid       ##Produce

> +

> +[LibraryClasses]

> +  DebugLib

> +  IoLib

> +  OemNicLib

> +  UefiBootServicesTableLib

> +  UefiDriverEntryPoint

> +

> +[Depex]

> +  TRUE

> -- 

> 2.17.0

> 

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel
Ming Huang Aug. 9, 2018, 6:24 a.m. UTC | #2
在 8/3/2018 11:23 PM, Leif Lindholm 写道:
> On Tue, Jul 24, 2018 at 03:09:08PM +0800, Ming Huang wrote:
>> From: shaochangliang <shaochangliang@huawei.com>
>>
>> This Driver provide Get/Set Mac function.
>>
>> Contributed-under: TianoCore Contribution Agreement 1.1
>> Signed-off-by: shaochangliang <shaochangliang@huawei.com>
>> Signed-off-by: Ming Huang <ming.huang@linaro.org>
>> Signed-off-by: Heyi Guo <heyi.guo@linaro.org>
>> ---
>>  Platform/Hisilicon/D06/D06.dsc                                         |  2 +-
>>  Platform/Hisilicon/D06/D06.fdf                                         |  2 +-
>>  Platform/Hisilicon/D06/Drivers/OemNicConfig2PHi1620/OemNicConfig.h     | 25 +++++++
>>  Platform/Hisilicon/D06/Drivers/OemNicConfig2PHi1620/OemNicConfig2P.c   | 71 ++++++++++++++++++++
>>  Platform/Hisilicon/D06/Drivers/OemNicConfig2PHi1620/OemNicConfig2P.inf | 43 ++++++++++++
>>  5 files changed, 141 insertions(+), 2 deletions(-)
>>
>> diff --git a/Platform/Hisilicon/D06/D06.dsc b/Platform/Hisilicon/D06/D06.dsc
>> index 744a4a0d6d..49322f8304 100644
>> --- a/Platform/Hisilicon/D06/D06.dsc
>> +++ b/Platform/Hisilicon/D06/D06.dsc
>> @@ -289,7 +289,7 @@
>>    #
>>    ArmPkg/Drivers/CpuDxe/CpuDxe.inf
>>    MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf
>> -
>> +  Platform/Hisilicon/D06/Drivers/OemNicConfig2PHi1620/OemNicConfig2P.inf
>>  
>>  !if $(SECURE_BOOT_ENABLE) == TRUE
>>    MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf {
>> diff --git a/Platform/Hisilicon/D06/D06.fdf b/Platform/Hisilicon/D06/D06.fdf
>> index 1c6ee4e0e4..e65dddd4e9 100644
>> --- a/Platform/Hisilicon/D06/D06.fdf
>> +++ b/Platform/Hisilicon/D06/D06.fdf
>> @@ -174,7 +174,7 @@ READ_LOCK_STATUS   = TRUE
>>    INF MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf
>>    INF Platform/Hisilicon/D06/Drivers/SFC/SfcDxeDriver.inf
>>  
>> -
>> +  INF Platform/Hisilicon/D06/Drivers/OemNicConfig2PHi1620/OemNicConfig2P.inf
>>    INF Silicon/Hisilicon/Drivers/FlashFvbDxe/FlashFvbDxe.inf
>>    INF MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteDxe.inf
>>    INF MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf
>> diff --git a/Platform/Hisilicon/D06/Drivers/OemNicConfig2PHi1620/OemNicConfig.h b/Platform/Hisilicon/D06/Drivers/OemNicConfig2PHi1620/OemNicConfig.h
>> new file mode 100644
>> index 0000000000..35228fdf1d
>> --- /dev/null
>> +++ b/Platform/Hisilicon/D06/Drivers/OemNicConfig2PHi1620/OemNicConfig.h
>> @@ -0,0 +1,25 @@
>> +/** @file
>> +*
>> +*  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
>> +*  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 __OEM_NIC_CONFIG_H__
>> +#define __OEM_NIC_CONFIG_H__
>> +
>> +#include <Uefi.h>
>> +#include <Library/DebugLib.h>
>> +#include <Library/IoLib.h>
>> +#include <Library/OemNicLib.h>
>> +#include <Library/UefiBootServicesTableLib.h>
>> +#include <Protocol/HisiBoardNicProtocol.h>
>> +#endif
>> diff --git a/Platform/Hisilicon/D06/Drivers/OemNicConfig2PHi1620/OemNicConfig2P.c b/Platform/Hisilicon/D06/Drivers/OemNicConfig2PHi1620/OemNicConfig2P.c
>> new file mode 100644
>> index 0000000000..7e2cee3b86
>> --- /dev/null
>> +++ b/Platform/Hisilicon/D06/Drivers/OemNicConfig2PHi1620/OemNicConfig2P.c
>> @@ -0,0 +1,71 @@
>> +/** @file
>> +*
>> +*  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
>> +*  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 <OemNicConfig.h>
>> +
>> +
>> +EFI_STATUS
>> +EFIAPI OemGetMac2P (
>> +  IN OUT EFI_MAC_ADDRESS *Mac,
>> +  IN     UINTN           Port
>> +  )
>> +{
>> +  OemGetMac (Mac, Port);
>> +
>> +  return EFI_SUCCESS;
>> +}
>> +
>> +EFI_STATUS
>> +EFIAPI OemSetMac2P (
>> +  IN EFI_MAC_ADDRESS *Mac,
>> +  IN UINTN           Port
>> +  )
>> +{
>> +  OemSetMac (Mac, Port);
>> +
>> +  return EFI_SUCCESS;
>> +}
>> +
>> +HISI_BOARD_NIC_PROTOCOL mHisiBoardNicProtocol2P = {
>> +  .GetMac = OemGetMac2P,
>> +  .SetMac = OemSetMac2P,
>> +};
>> +
>> +
>> +EFI_STATUS
>> +EFIAPI
>> +OemNicConfigEntry (
>> +  IN EFI_HANDLE           ImageHandle,
>> +  IN EFI_SYSTEM_TABLE     *SystemTable
>> +  )
>> +{
>> +  EFI_STATUS Status;
>> +
>> +  Status = gBS->InstallProtocolInterface (
>> +    &ImageHandle,
> 
> Indent to function name (InstallP...), not variable name.

Modify it in v2.
Thanks.

> 
> /
>     Leif
>     
>> +    &gHisiBoardNicProtocolGuid,
>> +    EFI_NATIVE_INTERFACE,
>> +    &mHisiBoardNicProtocol2P
>> +    );
>> +
>> +  if (EFI_ERROR (Status)) {
>> +    DEBUG ((DEBUG_ERROR, "[%a]:[%dL] Install Protocol failed %r\n",
>> +        __FUNCTION__, __LINE__, Status));
>> +    return Status;
>> +  }
>> +
>> +  return EFI_SUCCESS;
>> +}
>> +
>> diff --git a/Platform/Hisilicon/D06/Drivers/OemNicConfig2PHi1620/OemNicConfig2P.inf b/Platform/Hisilicon/D06/Drivers/OemNicConfig2PHi1620/OemNicConfig2P.inf
>> new file mode 100644
>> index 0000000000..a91f2b6005
>> --- /dev/null
>> +++ b/Platform/Hisilicon/D06/Drivers/OemNicConfig2PHi1620/OemNicConfig2P.inf
>> @@ -0,0 +1,43 @@
>> +#/** @file
>> +#
>> +#    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
>> +#    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                    = 0x0001001A
>> +  BASE_NAME                      = OemNicConfigPangea
>> +  FILE_GUID                      = edc95319-ebe9-4c38-96af-1d203fb85231
>> +  MODULE_TYPE                    = DXE_DRIVER
>> +  VERSION_STRING                 = 1.0
>> +  ENTRY_POINT                    = OemNicConfigEntry
>> +
>> +[Sources.common]
>> +  OemNicConfig2P.c
>> +
>> +[Packages]
>> +  MdeModulePkg/MdeModulePkg.dec
>> +  MdePkg/MdePkg.dec
>> +  Silicon/Hisilicon/HisiPkg.dec
>> +
>> +[Protocols]
>> +  gHisiBoardNicProtocolGuid       ##Produce
>> +
>> +[LibraryClasses]
>> +  DebugLib
>> +  IoLib
>> +  OemNicLib
>> +  UefiBootServicesTableLib
>> +  UefiDriverEntryPoint
>> +
>> +[Depex]
>> +  TRUE
>> -- 
>> 2.17.0
>>
diff mbox series

Patch

diff --git a/Platform/Hisilicon/D06/D06.dsc b/Platform/Hisilicon/D06/D06.dsc
index 744a4a0d6d..49322f8304 100644
--- a/Platform/Hisilicon/D06/D06.dsc
+++ b/Platform/Hisilicon/D06/D06.dsc
@@ -289,7 +289,7 @@ 
   #
   ArmPkg/Drivers/CpuDxe/CpuDxe.inf
   MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf
-
+  Platform/Hisilicon/D06/Drivers/OemNicConfig2PHi1620/OemNicConfig2P.inf
 
 !if $(SECURE_BOOT_ENABLE) == TRUE
   MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf {
diff --git a/Platform/Hisilicon/D06/D06.fdf b/Platform/Hisilicon/D06/D06.fdf
index 1c6ee4e0e4..e65dddd4e9 100644
--- a/Platform/Hisilicon/D06/D06.fdf
+++ b/Platform/Hisilicon/D06/D06.fdf
@@ -174,7 +174,7 @@  READ_LOCK_STATUS   = TRUE
   INF MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf
   INF Platform/Hisilicon/D06/Drivers/SFC/SfcDxeDriver.inf
 
-
+  INF Platform/Hisilicon/D06/Drivers/OemNicConfig2PHi1620/OemNicConfig2P.inf
   INF Silicon/Hisilicon/Drivers/FlashFvbDxe/FlashFvbDxe.inf
   INF MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteDxe.inf
   INF MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf
diff --git a/Platform/Hisilicon/D06/Drivers/OemNicConfig2PHi1620/OemNicConfig.h b/Platform/Hisilicon/D06/Drivers/OemNicConfig2PHi1620/OemNicConfig.h
new file mode 100644
index 0000000000..35228fdf1d
--- /dev/null
+++ b/Platform/Hisilicon/D06/Drivers/OemNicConfig2PHi1620/OemNicConfig.h
@@ -0,0 +1,25 @@ 
+/** @file
+*
+*  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
+*  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 __OEM_NIC_CONFIG_H__
+#define __OEM_NIC_CONFIG_H__
+
+#include <Uefi.h>
+#include <Library/DebugLib.h>
+#include <Library/IoLib.h>
+#include <Library/OemNicLib.h>
+#include <Library/UefiBootServicesTableLib.h>
+#include <Protocol/HisiBoardNicProtocol.h>
+#endif
diff --git a/Platform/Hisilicon/D06/Drivers/OemNicConfig2PHi1620/OemNicConfig2P.c b/Platform/Hisilicon/D06/Drivers/OemNicConfig2PHi1620/OemNicConfig2P.c
new file mode 100644
index 0000000000..7e2cee3b86
--- /dev/null
+++ b/Platform/Hisilicon/D06/Drivers/OemNicConfig2PHi1620/OemNicConfig2P.c
@@ -0,0 +1,71 @@ 
+/** @file
+*
+*  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
+*  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 <OemNicConfig.h>
+
+
+EFI_STATUS
+EFIAPI OemGetMac2P (
+  IN OUT EFI_MAC_ADDRESS *Mac,
+  IN     UINTN           Port
+  )
+{
+  OemGetMac (Mac, Port);
+
+  return EFI_SUCCESS;
+}
+
+EFI_STATUS
+EFIAPI OemSetMac2P (
+  IN EFI_MAC_ADDRESS *Mac,
+  IN UINTN           Port
+  )
+{
+  OemSetMac (Mac, Port);
+
+  return EFI_SUCCESS;
+}
+
+HISI_BOARD_NIC_PROTOCOL mHisiBoardNicProtocol2P = {
+  .GetMac = OemGetMac2P,
+  .SetMac = OemSetMac2P,
+};
+
+
+EFI_STATUS
+EFIAPI
+OemNicConfigEntry (
+  IN EFI_HANDLE           ImageHandle,
+  IN EFI_SYSTEM_TABLE     *SystemTable
+  )
+{
+  EFI_STATUS Status;
+
+  Status = gBS->InstallProtocolInterface (
+    &ImageHandle,
+    &gHisiBoardNicProtocolGuid,
+    EFI_NATIVE_INTERFACE,
+    &mHisiBoardNicProtocol2P
+    );
+
+  if (EFI_ERROR (Status)) {
+    DEBUG ((DEBUG_ERROR, "[%a]:[%dL] Install Protocol failed %r\n",
+        __FUNCTION__, __LINE__, Status));
+    return Status;
+  }
+
+  return EFI_SUCCESS;
+}
+
diff --git a/Platform/Hisilicon/D06/Drivers/OemNicConfig2PHi1620/OemNicConfig2P.inf b/Platform/Hisilicon/D06/Drivers/OemNicConfig2PHi1620/OemNicConfig2P.inf
new file mode 100644
index 0000000000..a91f2b6005
--- /dev/null
+++ b/Platform/Hisilicon/D06/Drivers/OemNicConfig2PHi1620/OemNicConfig2P.inf
@@ -0,0 +1,43 @@ 
+#/** @file
+#
+#    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
+#    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                    = 0x0001001A
+  BASE_NAME                      = OemNicConfigPangea
+  FILE_GUID                      = edc95319-ebe9-4c38-96af-1d203fb85231
+  MODULE_TYPE                    = DXE_DRIVER
+  VERSION_STRING                 = 1.0
+  ENTRY_POINT                    = OemNicConfigEntry
+
+[Sources.common]
+  OemNicConfig2P.c
+
+[Packages]
+  MdeModulePkg/MdeModulePkg.dec
+  MdePkg/MdePkg.dec
+  Silicon/Hisilicon/HisiPkg.dec
+
+[Protocols]
+  gHisiBoardNicProtocolGuid       ##Produce
+
+[LibraryClasses]
+  DebugLib
+  IoLib
+  OemNicLib
+  UefiBootServicesTableLib
+  UefiDriverEntryPoint
+
+[Depex]
+  TRUE