* Re: [edk2-devel] [PATCH v2 1/1] Drivers/ASpeed: Add ASpeed AST2500 GOP driver
[not found] <164A7B60D848FBA1.30699@groups.io>
@ 2020-12-01 5:52 ` Nhi Pham
2020-12-01 15:06 ` Samer El-Haj-Mahmoud
0 siblings, 1 reply; 3+ messages in thread
From: Nhi Pham @ 2020-12-01 5:52 UTC (permalink / raw)
To: devel@edk2.groups.io, Nhi Pham OS
Cc: Open Source Submission, Ray Ni, Leif Lindholm, Michael D Kinney,
Ard Biesheuvel, KuoHsiang Chou
[-- Attachment #1: Type: text/plain, Size: 32784 bytes --]
Hi Ard, Samer,
Could you ack this PATCH v2? The change's just to fix Samer's comment about UGA info in the GopDxe.inf.
Thanks,
Nhi
________________________________
From: devel@edk2.groups.io <devel@edk2.groups.io> on behalf of Nhi Pham via groups.io <nhi=os.amperecomputing.com@groups.io>
Sent: Tuesday, November 24, 2020 10:32 PM
To: devel@edk2.groups.io <devel@edk2.groups.io>
Cc: Open Source Submission <patches@amperecomputing.com>; Nhi Pham OS <nhi@os.amperecomputing.com>; Ray Ni <ray.ni@intel.com>; Leif Lindholm <leif@nuviainc.com>; Michael D Kinney <michael.d.kinney@intel.com>; Ard Biesheuvel <ard.biesheuvel@arm.com>; KuoHsiang Chou <kuohsiang_chou@aspeedtech.com>
Subject: [edk2-devel] [PATCH v2 1/1] Drivers/ASpeed: Add ASpeed AST2500 GOP driver
This is the AArch64 binary provided by ASpeed for AST2500 Gop driver
version 1.10.00.
Cc: Ray Ni <ray.ni@intel.com>
Cc: Leif Lindholm <leif@nuviainc.com>
Cc: Michael D Kinney <michael.d.kinney@intel.com>
Cc: Ard Biesheuvel <ard.biesheuvel@arm.com>
Signed-off-by: KuoHsiang Chou <kuohsiang_chou@aspeedtech.com>
Signed-off-by: Nhi Pham <nhi@os.amperecomputing.com>
---
Drivers/ASpeed/ASpeedGopBinPkg/GopDxe.inf | 24 +++++++++++++++++++
Drivers/ASpeed/ASpeedGopBinPkg/AArch64/uefi_2500_800.efi | Bin 0 -> 42880 bytes
Drivers/ASpeed/License.txt | 25 ++++++++++++++++++++
3 files changed, 49 insertions(+)
diff --git a/Drivers/ASpeed/ASpeedGopBinPkg/GopDxe.inf b/Drivers/ASpeed/ASpeedGopBinPkg/GopDxe.inf
new file mode 100644
index 000000000000..ed48e2efe1a5
--- /dev/null
+++ b/Drivers/ASpeed/ASpeedGopBinPkg/GopDxe.inf
@@ -0,0 +1,24 @@
+## @file
+# Component description file for ASPEED Graphics Controller Driver.
+#
+# Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2020, ASPEED Technology Inc. All rights reserved.<BR>
+#
+# 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 = 0x00010005
+ BASE_NAME = GopDxe
+ FILE_GUID = 7F81D838-F91D-4C44-8552-8FB912122FDD
+ MODULE_TYPE = UEFI_DRIVER
+ VERSION_STRING = 1.1
+
+[Binaries.AArch64]
+ PE32|AArch64/uefi_2500_800.efi|*
diff --git a/Drivers/ASpeed/ASpeedGopBinPkg/AArch64/uefi_2500_800.efi b/Drivers/ASpeed/ASpeedGopBinPkg/AArch64/uefi_2500_800.efi
new file mode 100644
index 0000000000000000000000000000000000000000..4b36e189b3a15abe2c160b948a1e221d4b0fd8e8
GIT binary patch
literal 42880
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
literal 0
HcmV?d00001
diff --git a/Drivers/ASpeed/License.txt b/Drivers/ASpeed/License.txt
new file mode 100644
index 000000000000..3dc49d3aff4f
--- /dev/null
+++ b/Drivers/ASpeed/License.txt
@@ -0,0 +1,25 @@
+Copyright (c) 2020, ASPEED Technology Inc. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
--
2.17.1
[-- Attachment #2: Type: text/html, Size: 40378 bytes --]
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [edk2-devel] [PATCH v2 1/1] Drivers/ASpeed: Add ASpeed AST2500 GOP driver
2020-12-01 5:52 ` [edk2-devel] [PATCH v2 1/1] Drivers/ASpeed: Add ASpeed AST2500 GOP driver Nhi Pham
@ 2020-12-01 15:06 ` Samer El-Haj-Mahmoud
2020-12-01 15:37 ` Nhi Pham
0 siblings, 1 reply; 3+ messages in thread
From: Samer El-Haj-Mahmoud @ 2020-12-01 15:06 UTC (permalink / raw)
To: devel@edk2.groups.io, nhi@os.amperecomputing.com
Cc: Open Source Submission, Ray Ni, Leif Lindholm, Michael D Kinney,
Ard Biesheuvel, KuoHsiang Chou, Samer El-Haj-Mahmoud
[-- Attachment #1: Type: text/plain, Size: 34798 bytes --]
Just a couple of suggestions:
* Change the file name from uefi_2500_800.efi to follow the EDK2 file naming convention. Maybe something like AspeedAst2500Gop.efi (what is the "800" in the original name?)
* Change the INF file GopDxe.inf to be more meaningful (maybe AspeedAst2500Gop.inf ?). I assume that ASpeedGopBinPkg is kept generic to allow placing more GOP drivers for different ASPEED models in that folder in the future?
With that,
Reviewed-By: Samer El-Haj-Mahmoud <Samer.El-Haj-Mahmoud@arm.com<mailto:Samer.El-Haj-Mahmoud@arm.com>>
From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Nhi Pham via groups.io
Sent: Tuesday, December 1, 2020 12:52 AM
To: devel@edk2.groups.io; Nhi Pham OS <nhi@os.amperecomputing.com>
Cc: Open Source Submission <patches@amperecomputing.com>; Ray Ni <ray.ni@intel.com>; Leif Lindholm <leif@nuviainc.com>; Michael D Kinney <michael.d.kinney@intel.com>; Ard Biesheuvel <Ard.Biesheuvel@arm.com>; KuoHsiang Chou <kuohsiang_chou@aspeedtech.com>
Subject: Re: [edk2-devel] [PATCH v2 1/1] Drivers/ASpeed: Add ASpeed AST2500 GOP driver
Hi Ard, Samer,
Could you ack this PATCH v2? The change's just to fix Samer's comment about UGA info in the GopDxe.inf.
Thanks,
Nhi
________________________________
From: devel@edk2.groups.io<mailto:devel@edk2.groups.io> <devel@edk2.groups.io<mailto:devel@edk2.groups.io>> on behalf of Nhi Pham via groups.io <nhi=os.amperecomputing.com@groups.io<mailto:nhi=os.amperecomputing.com@groups.io>>
Sent: Tuesday, November 24, 2020 10:32 PM
To: devel@edk2.groups.io<mailto:devel@edk2.groups.io> <devel@edk2.groups.io<mailto:devel@edk2.groups.io>>
Cc: Open Source Submission <patches@amperecomputing.com<mailto:patches@amperecomputing.com>>; Nhi Pham OS <nhi@os.amperecomputing.com<mailto:nhi@os.amperecomputing.com>>; Ray Ni <ray.ni@intel.com<mailto:ray.ni@intel.com>>; Leif Lindholm <leif@nuviainc.com<mailto:leif@nuviainc.com>>; Michael D Kinney <michael.d.kinney@intel.com<mailto:michael.d.kinney@intel.com>>; Ard Biesheuvel <ard.biesheuvel@arm.com<mailto:ard.biesheuvel@arm.com>>; KuoHsiang Chou <kuohsiang_chou@aspeedtech.com<mailto:kuohsiang_chou@aspeedtech.com>>
Subject: [edk2-devel] [PATCH v2 1/1] Drivers/ASpeed: Add ASpeed AST2500 GOP driver
This is the AArch64 binary provided by ASpeed for AST2500 Gop driver
version 1.10.00.
Cc: Ray Ni <ray.ni@intel.com<mailto:ray.ni@intel.com>>
Cc: Leif Lindholm <leif@nuviainc.com<mailto:leif@nuviainc.com>>
Cc: Michael D Kinney <michael.d.kinney@intel.com<mailto:michael.d.kinney@intel.com>>
Cc: Ard Biesheuvel <ard.biesheuvel@arm.com<mailto:ard.biesheuvel@arm.com>>
Signed-off-by: KuoHsiang Chou <kuohsiang_chou@aspeedtech.com<mailto:kuohsiang_chou@aspeedtech.com>>
Signed-off-by: Nhi Pham <nhi@os.amperecomputing.com<mailto:nhi@os.amperecomputing.com>>
---
Drivers/ASpeed/ASpeedGopBinPkg/GopDxe.inf | 24 +++++++++++++++++++
Drivers/ASpeed/ASpeedGopBinPkg/AArch64/uefi_2500_800.efi | Bin 0 -> 42880 bytes
Drivers/ASpeed/License.txt | 25 ++++++++++++++++++++
3 files changed, 49 insertions(+)
diff --git a/Drivers/ASpeed/ASpeedGopBinPkg/GopDxe.inf b/Drivers/ASpeed/ASpeedGopBinPkg/GopDxe.inf
new file mode 100644
index 000000000000..ed48e2efe1a5
--- /dev/null
+++ b/Drivers/ASpeed/ASpeedGopBinPkg/GopDxe.inf
@@ -0,0 +1,24 @@
+## @file
+# Component description file for ASPEED Graphics Controller Driver.
+#
+# Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2020, ASPEED Technology Inc. All rights reserved.<BR>
+#
+# 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 = 0x00010005
+ BASE_NAME = GopDxe
+ FILE_GUID = 7F81D838-F91D-4C44-8552-8FB912122FDD
+ MODULE_TYPE = UEFI_DRIVER
+ VERSION_STRING = 1.1
+
+[Binaries.AArch64]
+ PE32|AArch64/uefi_2500_800.efi|*
diff --git a/Drivers/ASpeed/ASpeedGopBinPkg/AArch64/uefi_2500_800.efi b/Drivers/ASpeed/ASpeedGopBinPkg/AArch64/uefi_2500_800.efi
new file mode 100644
index 0000000000000000000000000000000000000000..4b36e189b3a15abe2c160b948a1e221d4b0fd8e8
GIT binary patch
literal 42880
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
literal 0
HcmV?d00001
diff --git a/Drivers/ASpeed/License.txt b/Drivers/ASpeed/License.txt
new file mode 100644
index 000000000000..3dc49d3aff4f
--- /dev/null
+++ b/Drivers/ASpeed/License.txt
@@ -0,0 +1,25 @@
+Copyright (c) 2020, ASPEED Technology Inc. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
--
2.17.1
IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.
[-- Attachment #2: Type: text/html, Size: 47210 bytes --]
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [edk2-devel] [PATCH v2 1/1] Drivers/ASpeed: Add ASpeed AST2500 GOP driver
2020-12-01 15:06 ` Samer El-Haj-Mahmoud
@ 2020-12-01 15:37 ` Nhi Pham
0 siblings, 0 replies; 3+ messages in thread
From: Nhi Pham @ 2020-12-01 15:37 UTC (permalink / raw)
To: Samer El-Haj-Mahmoud, devel@edk2.groups.io
Cc: Open Source Submission, Ray Ni, Leif Lindholm, Michael D Kinney,
Ard Biesheuvel, KuoHsiang Chou
[-- Attachment #1: Type: text/plain, Size: 35703 bytes --]
Hi Samer,
Thanks! I will update per your suggestions in version 3 of the patch.
Thanks,
Nhi
________________________________
From: Samer El-Haj-Mahmoud <Samer.El-Haj-Mahmoud@arm.com>
Sent: Tuesday, December 1, 2020 10:06 PM
To: devel@edk2.groups.io <devel@edk2.groups.io>; Nhi Pham OS <nhi@os.amperecomputing.com>
Cc: Open Source Submission <patches@amperecomputing.com>; Ray Ni <ray.ni@intel.com>; Leif Lindholm <leif@nuviainc.com>; Michael D Kinney <michael.d.kinney@intel.com>; Ard Biesheuvel <Ard.Biesheuvel@arm.com>; KuoHsiang Chou <kuohsiang_chou@aspeedtech.com>; Samer El-Haj-Mahmoud <samer.el-haj-mahmoud@arm.com>
Subject: RE: [edk2-devel] [PATCH v2 1/1] Drivers/ASpeed: Add ASpeed AST2500 GOP driver
Just a couple of suggestions:
* Change the file name from uefi_2500_800.efi to follow the EDK2 file naming convention. Maybe something like AspeedAst2500Gop.efi (what is the “800” in the original name?)
[Nhi] The "800" was named for reference clock. We can remove it in the name.
* Change the INF file GopDxe.inf to be more meaningful (maybe AspeedAst2500Gop.inf ?). I assume that ASpeedGopBinPkg is kept generic to allow placing more GOP drivers for different ASPEED models in that folder in the future?
[Nhi] Yes, it may be AST2600 GOP driver.
With that,
Reviewed-By: Samer El-Haj-Mahmoud <Samer.El-Haj-Mahmoud@arm.com<mailto:Samer.El-Haj-Mahmoud@arm.com>>
From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Nhi Pham via groups.io
Sent: Tuesday, December 1, 2020 12:52 AM
To: devel@edk2.groups.io; Nhi Pham OS <nhi@os.amperecomputing.com>
Cc: Open Source Submission <patches@amperecomputing.com>; Ray Ni <ray.ni@intel.com>; Leif Lindholm <leif@nuviainc.com>; Michael D Kinney <michael.d.kinney@intel.com>; Ard Biesheuvel <Ard.Biesheuvel@arm.com>; KuoHsiang Chou <kuohsiang_chou@aspeedtech.com>
Subject: Re: [edk2-devel] [PATCH v2 1/1] Drivers/ASpeed: Add ASpeed AST2500 GOP driver
Hi Ard, Samer,
Could you ack this PATCH v2? The change's just to fix Samer's comment about UGA info in the GopDxe.inf.
Thanks,
Nhi
________________________________
From: devel@edk2.groups.io<mailto:devel@edk2.groups.io> <devel@edk2.groups.io<mailto:devel@edk2.groups.io>> on behalf of Nhi Pham via groups.io <nhi=os.amperecomputing.com@groups.io<mailto:nhi=os.amperecomputing.com@groups.io>>
Sent: Tuesday, November 24, 2020 10:32 PM
To: devel@edk2.groups.io<mailto:devel@edk2.groups.io> <devel@edk2.groups.io<mailto:devel@edk2.groups.io>>
Cc: Open Source Submission <patches@amperecomputing.com<mailto:patches@amperecomputing.com>>; Nhi Pham OS <nhi@os.amperecomputing.com<mailto:nhi@os.amperecomputing.com>>; Ray Ni <ray.ni@intel.com<mailto:ray.ni@intel.com>>; Leif Lindholm <leif@nuviainc.com<mailto:leif@nuviainc.com>>; Michael D Kinney <michael.d.kinney@intel.com<mailto:michael.d.kinney@intel.com>>; Ard Biesheuvel <ard.biesheuvel@arm.com<mailto:ard.biesheuvel@arm.com>>; KuoHsiang Chou <kuohsiang_chou@aspeedtech.com<mailto:kuohsiang_chou@aspeedtech.com>>
Subject: [edk2-devel] [PATCH v2 1/1] Drivers/ASpeed: Add ASpeed AST2500 GOP driver
This is the AArch64 binary provided by ASpeed for AST2500 Gop driver
version 1.10.00.
Cc: Ray Ni <ray.ni@intel.com<mailto:ray.ni@intel.com>>
Cc: Leif Lindholm <leif@nuviainc.com<mailto:leif@nuviainc.com>>
Cc: Michael D Kinney <michael.d.kinney@intel.com<mailto:michael.d.kinney@intel.com>>
Cc: Ard Biesheuvel <ard.biesheuvel@arm.com<mailto:ard.biesheuvel@arm.com>>
Signed-off-by: KuoHsiang Chou <kuohsiang_chou@aspeedtech.com<mailto:kuohsiang_chou@aspeedtech.com>>
Signed-off-by: Nhi Pham <nhi@os.amperecomputing.com<mailto:nhi@os.amperecomputing.com>>
---
Drivers/ASpeed/ASpeedGopBinPkg/GopDxe.inf | 24 +++++++++++++++++++
Drivers/ASpeed/ASpeedGopBinPkg/AArch64/uefi_2500_800.efi | Bin 0 -> 42880 bytes
Drivers/ASpeed/License.txt | 25 ++++++++++++++++++++
3 files changed, 49 insertions(+)
diff --git a/Drivers/ASpeed/ASpeedGopBinPkg/GopDxe.inf b/Drivers/ASpeed/ASpeedGopBinPkg/GopDxe.inf
new file mode 100644
index 000000000000..ed48e2efe1a5
--- /dev/null
+++ b/Drivers/ASpeed/ASpeedGopBinPkg/GopDxe.inf
@@ -0,0 +1,24 @@
+## @file
+# Component description file for ASPEED Graphics Controller Driver.
+#
+# Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2020, ASPEED Technology Inc. All rights reserved.<BR>
+#
+# 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 = 0x00010005
+ BASE_NAME = GopDxe
+ FILE_GUID = 7F81D838-F91D-4C44-8552-8FB912122FDD
+ MODULE_TYPE = UEFI_DRIVER
+ VERSION_STRING = 1.1
+
+[Binaries.AArch64]
+ PE32|AArch64/uefi_2500_800.efi|*
diff --git a/Drivers/ASpeed/ASpeedGopBinPkg/AArch64/uefi_2500_800.efi b/Drivers/ASpeed/ASpeedGopBinPkg/AArch64/uefi_2500_800.efi
new file mode 100644
index 0000000000000000000000000000000000000000..4b36e189b3a15abe2c160b948a1e221d4b0fd8e8
GIT binary patch
literal 42880
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
literal 0
HcmV?d00001
diff --git a/Drivers/ASpeed/License.txt b/Drivers/ASpeed/License.txt
new file mode 100644
index 000000000000..3dc49d3aff4f
--- /dev/null
+++ b/Drivers/ASpeed/License.txt
@@ -0,0 +1,25 @@
+Copyright (c) 2020, ASPEED Technology Inc. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
--
2.17.1
IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.
[-- Attachment #2: Type: text/html, Size: 48323 bytes --]
^ permalink raw reply related [flat|nested] 3+ messages in thread
end of thread, other threads:[~2020-12-01 15:37 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <164A7B60D848FBA1.30699@groups.io>
2020-12-01 5:52 ` [edk2-devel] [PATCH v2 1/1] Drivers/ASpeed: Add ASpeed AST2500 GOP driver Nhi Pham
2020-12-01 15:06 ` Samer El-Haj-Mahmoud
2020-12-01 15:37 ` Nhi Pham
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox