public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: Heyi Guo <heyi.guo@linaro.org>
To: leif.lindholm@linaro.org, linaro-uefi@lists.linaro.org,
	edk2-devel@lists.01.org, graeme.gregory@linaro.org
Cc: ard.biesheuvel@linaro.org, guoheyi@huawei.com,
	wanghuiqiang@huawei.com, huangming23@huawei.com,
	zhangjinsong2@huawei.com, mengfanrong@huawei.com, waip23@126.com,
	Heyi Guo <heyi.guo@linaro.org>
Subject: [PATCH edk2-platforms v4 06/11] Hisilicon/D05/Net: Update Snp driver
Date: Fri, 22 Sep 2017 21:58:38 +0800	[thread overview]
Message-ID: <1506088728-53634-12-git-send-email-heyi.guo@linaro.org> (raw)
In-Reply-To: <1506088728-53634-1-git-send-email-heyi.guo@linaro.org>

1. Replace SnpPV660Dxe with SnpPV600Dxe;
2. Add SnpPlatform:
     Install protocol to enable nic port which are using.

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Ming Huang <huangming23@huawei.com>
Signed-off-by: Heyi Guo <heyi.guo@linaro.org>
---
 Platform/Hisilicon/D05/Drivers/Net/SnpPV600Dxe/SnpPV600Dxe.efi | Bin 0 -> 28544 bytes
 Platform/Hisilicon/D05/Drivers/Net/SnpPV600Dxe/SnpPV600Dxe.inf |  24 +++++++++++++++++
 Platform/Hisilicon/D05/Drivers/Net/SnpPV660Dxe/SnpPV600Dxe.efi | Bin 56512 -> 0 bytes
 Platform/Hisilicon/D05/Drivers/Net/SnpPV660Dxe/SnpPV600Dxe.inf |  27 --------------------
 Platform/Hisilicon/D05/Drivers/Net/SnpPlatform/SnpPlatform.efi | Bin 0 -> 3392 bytes
 Platform/Hisilicon/D05/Drivers/Net/SnpPlatform/SnpPlatform.inf |  24 +++++++++++++++++
 6 files changed, 48 insertions(+), 27 deletions(-)

diff --git a/Platform/Hisilicon/D05/Drivers/Net/SnpPV600Dxe/SnpPV600Dxe.efi b/Platform/Hisilicon/D05/Drivers/Net/SnpPV600Dxe/SnpPV600Dxe.efi
new file mode 100644
index 0000000000000000000000000000000000000000..bc7942a3e1338f08328c6a571c811cd1b69762d0
GIT binary patch
literal 28544
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
E0QHP4rT_o{

literal 0
HcmV?d00001

diff --git a/Platform/Hisilicon/D05/Drivers/Net/SnpPV600Dxe/SnpPV600Dxe.inf b/Platform/Hisilicon/D05/Drivers/Net/SnpPV600Dxe/SnpPV600Dxe.inf
new file mode 100644
index 0000000..90e478d
--- /dev/null
+++ b/Platform/Hisilicon/D05/Drivers/Net/SnpPV600Dxe/SnpPV600Dxe.inf
@@ -0,0 +1,24 @@
+#/** @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                      = SnpPV600Dxe
+  FILE_GUID                      = 3247F15F-3612-4803-BD4E-4104D7EF944A
+  MODULE_TYPE                    = DXE_DRIVER
+  VERSION_STRING                 = 1.0
+
+[Binaries.AARCH64]
+  PE32|SnpPV600Dxe.efi|*
diff --git a/Platform/Hisilicon/D05/Drivers/Net/SnpPV660Dxe/SnpPV600Dxe.efi b/Platform/Hisilicon/D05/Drivers/Net/SnpPV660Dxe/SnpPV600Dxe.efi
deleted file mode 100644
index c54538f66588a5e637e974604bb43fd6b5d06715..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 56512
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
PRP5B?shy`#d70<Gvv@nH

diff --git a/Platform/Hisilicon/D05/Drivers/Net/SnpPV660Dxe/SnpPV600Dxe.inf b/Platform/Hisilicon/D05/Drivers/Net/SnpPV660Dxe/SnpPV600Dxe.inf
deleted file mode 100644
index 98cc3b8..0000000
--- a/Platform/Hisilicon/D05/Drivers/Net/SnpPV660Dxe/SnpPV600Dxe.inf
+++ /dev/null
@@ -1,27 +0,0 @@
-#/** @file
-#
-#    Copyright (c) 2016, Hisilicon Limited. All rights reserved.
-#    Copyright (c) 2016-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                      = SnpPV600Dxe
-  FILE_GUID                      = 85F85FDE-FDA1-465A-B22E-488F1A6F966C
-  MODULE_TYPE                    = UEFI_DRIVER
-  VERSION_STRING                 = 1.0
-
-  ENTRY_POINT                    = InitializeSnpPV600Driver
-  UNLOAD_IMAGE                   = SnpPV600Unload
-
-[Binaries]
-  PE32|SnpPV600Dxe.efi|*
diff --git a/Platform/Hisilicon/D05/Drivers/Net/SnpPlatform/SnpPlatform.efi b/Platform/Hisilicon/D05/Drivers/Net/SnpPlatform/SnpPlatform.efi
new file mode 100644
index 0000000000000000000000000000000000000000..42c26de8c31919348fefac1e17b2e5ad2d57d111
GIT binary patch
literal 3392
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

literal 0
HcmV?d00001

diff --git a/Platform/Hisilicon/D05/Drivers/Net/SnpPlatform/SnpPlatform.inf b/Platform/Hisilicon/D05/Drivers/Net/SnpPlatform/SnpPlatform.inf
new file mode 100644
index 0000000..10b2003
--- /dev/null
+++ b/Platform/Hisilicon/D05/Drivers/Net/SnpPlatform/SnpPlatform.inf
@@ -0,0 +1,24 @@
+#/** @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
+
+[Binaries.AARCH64]
+  PE32|SnpPlatform.efi|*
-- 
1.9.1



  parent reply	other threads:[~2017-09-22 14:03 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-09-22 13:58 [PATCH edk2-non-osi v4 00/10] Update D03/D05 binary for edk2 update and bug fix Heyi Guo
2017-09-22 13:58 ` [PATCH edk2-platforms v4 00/11] " Heyi Guo
2017-09-27 18:27   ` Leif Lindholm
2017-09-27 20:02     ` Heyi Guo
2017-09-22 13:58 ` [PATCH edk2-non-osi v4 01/10] Hisilicon/D03/Net: Update Snp driver Heyi Guo
2017-09-22 13:58 ` [PATCH edk2-platforms v4 02/11] " Heyi Guo
2017-09-22 13:58 ` [PATCH edk2-non-osi v4 02/10] Hisilicon/D03/Sas: Add SasPlatform Heyi Guo
2017-09-22 13:58 ` [PATCH edk2-platforms v4 03/11] " Heyi Guo
2017-09-22 13:58 ` [PATCH edk2-non-osi v4 03/10] Hisilicon/D03: Update binary file Heyi Guo
2017-09-22 13:58 ` [PATCH edk2-non-osi v4 04/10] Hisilicon: Update Trusted Firmware binary Heyi Guo
2017-09-22 13:58 ` [PATCH edk2-non-osi v4 05/10] Hisilicon/D05/Net: Update Snp driver Heyi Guo
2017-09-22 13:58 ` [PATCH edk2-platforms v4 05/11] Hisilicon: Update Trusted Firmware binary Heyi Guo
2017-09-22 13:58 ` Heyi Guo [this message]
2017-09-22 13:58 ` [PATCH edk2-non-osi v4 06/10] Hisilicon/D05/Sas: Add SasPlatform Heyi Guo
2017-09-22 13:58 ` [PATCH edk2-platforms v4 07/11] " Heyi Guo
2017-09-22 13:58 ` [PATCH edk2-non-osi v4 07/10] Hisilicon/D05: Update binary file Heyi Guo
2017-09-22 13:58 ` [PATCH edk2-non-osi v4 08/10] Hisilicon/D05: Update Trusted Firmware binary Heyi Guo
2017-09-22 13:58 ` [PATCH edk2-non-osi v4 09/10] Hisilicon/D05: Fix bug 3061 Heyi Guo
2017-09-22 13:58 ` [PATCH edk2-platforms v4 09/11] Hisilicon/D05: Update Trusted Firmware binary Heyi Guo
2017-09-22 13:58 ` [PATCH edk2-platforms v4 10/11] Hisilicon/D05: Fix bug 3061 Heyi Guo
2017-09-22 13:58 ` [PATCH edk2-non-osi v4 10/10] Hisilicon: Fix the drivers use the same GUID issue Heyi Guo
2017-09-22 13:58 ` [PATCH edk2-platforms v4 11/11] " Heyi Guo

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-list from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1506088728-53634-12-git-send-email-heyi.guo@linaro.org \
    --to=devel@edk2.groups.io \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox