[edk2] [Patch] MdePkg: Add UEFI 2.7 defined GUID and structure for KMS protocol.

2017-07-18 Thread Fu Siyuan
Cc: Ye Ting 
Cc: Wu Jiaxin 
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Fu Siyuan 
---
 MdePkg/Include/Protocol/Kms.h | 17 -
 1 file changed, 16 insertions(+), 1 deletion(-)

diff --git a/MdePkg/Include/Protocol/Kms.h b/MdePkg/Include/Protocol/Kms.h
index da27096..1d2dcc6 100644
--- a/MdePkg/Include/Protocol/Kms.h
+++ b/MdePkg/Include/Protocol/Kms.h
@@ -8,7 +8,7 @@
   server over the network, or to a Hardware Security Module (HSM) attached to 
the system it
   runs on, or anything else that is capable of providing the key management 
service.
 
-  Copyright (c) 2011, Intel Corporation. All rights reserved.
+  Copyright (c) 2011 - 2017, Intel Corporation. All rights reserved.
   This program and the accompanying materials are licensed and made available 
under
   the terms and conditions of the BSD License that accompanies this 
distribution.
   The full text of the license may be found at
@@ -80,6 +80,10 @@ typedef struct _EFI_KMS_PROTOCOL EFI_KMS_PROTOCOL;
   { \
 0xb9237513, 0x6c44, 0x4411, {0xa9, 0x90, 0x21, 0xe5, 0x56, 0xe0, 0x5a, 
0xde } \
   }
+#define EFI_KMS_FORMAT_GENERIC_DYNAMIC_GUID \
+  { \
+0x2156e996, 0x66de, 0x4b27, {0x9c, 0xc9, 0xb0, 0x9f, 0xac, 0x4d, 0x2, 0xbe 
} \
+  }
 ///@}
 
 ///
@@ -177,6 +181,17 @@ typedef struct _EFI_KMS_PROTOCOL EFI_KMS_PROTOCOL;
 
 typedef struct {
   ///
+  /// Length in bytes of the KeyData.
+  ///
+  UINT32KeySize;
+  ///
+  /// The data of the key.
+  ///
+  UINT8 KeyData[1];
+} EFI_KMS_FORMAT_GENERIC_DYNAMIC;
+
+typedef struct {
+  ///
   /// The size in bytes for the client identifier.
   ///
   UINT16ClientIdSize;
-- 
1.9.5.msysgit.1

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


[edk2] [Patch][edk2-platforms/minnowboard-max-udk2015] Changed ReadMe.MD

2017-07-18 Thread Guo, Mang
Contributed-under: TianoCore Contribution Agreement 1.0

Signed-off-by: Guo Mang 
---
 ReadMe.MD | 83 ---
 1 file changed, 5 insertions(+), 78 deletions(-)

diff --git a/ReadMe.MD b/ReadMe.MD
index 63f3219..4abead1 100644
--- a/ReadMe.MD
+++ b/ReadMe.MD
@@ -1,83 +1,10 @@
-
-This code base is designed for the MinnowBoard Max/Turbot platforms using the 
Intel(R) Atom(tm) Processor E3800 Series.
-This code base is based on UDK2015 core packages.
+# MINNOWBOARD MAX/TURBOT PLATFORM FIRMWARE
 
-# INDEX
+This UEFI firmware is designed for the open hardware MinnowBoard Max/Turbot 
platforms using
+the Intel(R) Atom(tm) Processor E3800 Series, based on UDK2015 core packages.
 
-1.  HOW TO CREATE A FULL SOURCE TREE
-2.  HOW TO BUILD (WINDOWS ENVIRONMENT)
-3.  MAINTAINERS
+http://minnowboard.org/ -- Platform Information, including schematics and 
information on where to purchase boards.
 
-## 1. HOW TO CREATE A FULL SOURCE TREE
+https://firmware.intel.com/projects/minnowboard-max -- Release notes, 
pre-built release/debug binaries, build instructions, and binary objects 
required to compile firmware.
 
-1. Get Release Notes and Binary Object Modules from 
https://firmware.intel.com/projects/minnowboard-max
-
-   Follow the instructions in the Release Notes to create a full source tree.
-
-## 2. HOW TO BUILD (WINDOWS ENVIRONMENT)
-
-Windows System Configuration:
-  Microsoft Windows 7 Ultimate 64-bit*
-
-1. Setup Build Environment
-
-   1. Install Visual Studio 2008/2010/2012/2013 on the build machine.
-
-   2. Install the latest Python 2 Release from: 
https://www.python.org/downloads/windows/
-  * Make sure that a file with the extension of ".py" will be opened by 
Python.exe.
-
-2. Extract Source Code
-   1. Follow the instructions of "HOW TO CREATE A FULL SOURCE TREE" (step 2 
above)
-  to create a full source tree.
-
-   2. Follow the instructions found in the file "Patch-HOWTO.txt" located in 
your
-  workspace (e.g. 
"C:\MyWorkspace\CryptoPkg\Library\OpensslLib\Patch-HOWTO.txt") 
-  to install the Openssl source code.
-
-3. Install the iasl compiler by downloading iasl-win-20141107.zip from the 
following
-   location: "https://acpica.org/downloads/version-20141107"; and place the 
unzipped
-   content ("iasl.exe") into the directory "C:\ASL" on your local hard drive
-   (create the folder "C:\ASL" if it does not exist).
-   
-4a. Build Steps (32-bit)
-
-   1. To build a 32-bit release version
-  * Open a command prompt of Microsoft Visual Studio, such as "Developer 
Command Prompt for VS2013";
-  * Type the command: `cd C:\MyWorkspace\edk2-platforms\Vlv2TbltDevicePkg`
-  * Type the command: `Build_IFWI.bat /IA32 MNW2 Release` to build a 
release version.
-
-   2. To build a 32-bit debug version
-  * Open a command prompt of Microsoft Visual Studio, such as "Developer 
Command Prompt for VS2013";
-  * Type the command: `cd C:\MyWorkspace\edk2-platforms\Vlv2TbltDevicePkg`
-  * Type the command: `Build_IFWI.bat /IA32 MNW2 Debug` to build a debug 
version.
-
-   3. After the build successfully completes, the 8MB firmware binary image 
will be located in the
-   following location on your local hard drive:
-
-  "C:\MyWorkspace\edk2-platforms\Vlv2TbltDevicePkg\Stitch\"
-
-4b. Build Steps (64-bit)
-
-   1. To build a 64-bit release version
-  * Open a command prompt of Microsoft Visual Studio, such as "Developer 
Command Prompt for VS2013";
-  * Type the command: `cd C:\MyWorkspace\edk2-platforms\Vlv2TbltDevicePkg`
-  * Type the command: `Build_IFWI.bat MNW2 Release` to build a release 
version.
-
-   2. To build a 64-bit debug version
-  * Open a command prompt of Microsoft Visual Studio, such as "Developer 
Command Prompt for VS2013";
-  * Type the command: `cd C:\MyWorkspace\edk2-platforms\Vlv2TbltDevicePkg`
-  * Type the command: `Build_IFWI.bat MNW2 Debug` to build a debug version.
-
-   3. After the build successfully completes, the 8MB firmware binary image 
will be located in the
-  following location on your local hard drive:
-
-  "C:\MyWorkspace\edk2-platforms\Vlv2TbltDevicePkg\Stitch\"
-
-## MAINTAINERS
-
-* david@intel.com
-* mang@intel.com
-* vincent.zim...@intel.com
-* mike...@intel.com
-* shifeix.a...@intel.com
 
-- 
2.10.1.windows.1

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


Re: [edk2] [Patch 1/2] MdePkg SmmAccess2: Update comments to follow PI spec.

2017-07-18 Thread Ni, Ruiyu
Reviewed-by: Ruiyu Ni 

Thanks/Ray

> -Original Message-
> From: edk2-devel [mailto:edk2-devel-boun...@lists.01.org] On Behalf Of
> Eric Dong
> Sent: Wednesday, July 19, 2017 10:38 AM
> To: edk2-devel@lists.01.org
> Cc: Ni, Ruiyu ; Fan, Jeff 
> Subject: [edk2] [Patch 1/2] MdePkg SmmAccess2: Update comments to
> follow PI spec.
> 
> Cc: Jeff Fan 
> Cc: Ruiyu Ni 
> Contributed-under: TianoCore Contribution Agreement 1.0
> Signed-off-by: Eric Dong 
> ---
>  MdePkg/Include/Protocol/SmmAccess2.h | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/MdePkg/Include/Protocol/SmmAccess2.h
> b/MdePkg/Include/Protocol/SmmAccess2.h
> index eb315db..5904266 100644
> --- a/MdePkg/Include/Protocol/SmmAccess2.h
> +++ b/MdePkg/Include/Protocol/SmmAccess2.h
> @@ -108,8 +108,9 @@ EFI_STATUS
> 
>  ///
>  ///  EFI SMM Access2 Protocol is used to control the visibility of the SMRAM
> on the platform.
> -///  It abstracts the location and characteristics of SMRAM.  The expectation
> is
> -///  that the north bridge or memory controller would publish this protocol.
> +///  It abstracts the location and characteristics of SMRAM. The platform
> should report all
> +///  MMRAM via EFI_MM_ACCESS_PROTOCOL. The expectation is that the
> north bridge or memory
> +///  controller would publish this protocol.
>  ///
>  struct _EFI_SMM_ACCESS2_PROTOCOL {
>EFI_SMM_OPEN2  Open;
> --
> 2.7.0.windows.1
> 
> ___
> edk2-devel mailing list
> edk2-devel@lists.01.org
> https://lists.01.org/mailman/listinfo/edk2-devel
___
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel


Re: [edk2] [Patch 2/2] MdeModulePkg SmmAccess: Update comments to follow PI spec.

2017-07-18 Thread Ni, Ruiyu
Reviewed-by: Ruiyu Ni 

Thanks/Ray

> -Original Message-
> From: Dong, Eric
> Sent: Wednesday, July 19, 2017 10:38 AM
> To: edk2-devel@lists.01.org
> Cc: Fan, Jeff ; Ni, Ruiyu 
> Subject: [Patch 2/2] MdeModulePkg SmmAccess: Update comments to
> follow PI spec.
> 
> Cc: Jeff Fan 
> Cc: Ruiyu Ni 
> Contributed-under: TianoCore Contribution Agreement 1.0
> Signed-off-by: Eric Dong 
> ---
>  MdeModulePkg/Include/Ppi/SmmAccess.h | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/MdeModulePkg/Include/Ppi/SmmAccess.h
> b/MdeModulePkg/Include/Ppi/SmmAccess.h
> index 085ad64..d91374e 100644
> --- a/MdeModulePkg/Include/Ppi/SmmAccess.h
> +++ b/MdeModulePkg/Include/Ppi/SmmAccess.h
> @@ -128,8 +128,9 @@ EFI_STATUS
> 
>  ///
>  ///  EFI SMM Access PPI is used to control the visibility of the SMRAM on the
> platform.
> -///  It abstracts the location and characteristics of SMRAM.  The expectation
> is
> -///  that the north bridge or memory controller would publish this PPI.
> +///  It abstracts the location and characteristics of SMRAM. The platform
> should report
> +///  all MMRAM via PEI_SMM_ACCESS_PPI. The expectation is that the
> north bridge or
> +///  memory controller would publish this PPI.
>  ///
>  struct _PEI_SMM_ACCESS_PPI {
>PEI_SMM_OPEN  Open;
> --
> 2.7.0.windows.1

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


[edk2] [Patch 1/2] MdePkg SmmAccess2: Update comments to follow PI spec.

2017-07-18 Thread Eric Dong
Cc: Jeff Fan 
Cc: Ruiyu Ni 
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Eric Dong 
---
 MdePkg/Include/Protocol/SmmAccess2.h | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/MdePkg/Include/Protocol/SmmAccess2.h 
b/MdePkg/Include/Protocol/SmmAccess2.h
index eb315db..5904266 100644
--- a/MdePkg/Include/Protocol/SmmAccess2.h
+++ b/MdePkg/Include/Protocol/SmmAccess2.h
@@ -108,8 +108,9 @@ EFI_STATUS
 
 ///
 ///  EFI SMM Access2 Protocol is used to control the visibility of the SMRAM 
on the platform.
-///  It abstracts the location and characteristics of SMRAM.  The expectation 
is
-///  that the north bridge or memory controller would publish this protocol.
+///  It abstracts the location and characteristics of SMRAM. The platform 
should report all 
+///  MMRAM via EFI_MM_ACCESS_PROTOCOL. The expectation is that the north 
bridge or memory 
+///  controller would publish this protocol.
 /// 
 struct _EFI_SMM_ACCESS2_PROTOCOL {
   EFI_SMM_OPEN2  Open;
-- 
2.7.0.windows.1

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


[edk2] [Patch 2/2] MdeModulePkg SmmAccess: Update comments to follow PI spec.

2017-07-18 Thread Eric Dong
Cc: Jeff Fan 
Cc: Ruiyu Ni 
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Eric Dong 
---
 MdeModulePkg/Include/Ppi/SmmAccess.h | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/MdeModulePkg/Include/Ppi/SmmAccess.h 
b/MdeModulePkg/Include/Ppi/SmmAccess.h
index 085ad64..d91374e 100644
--- a/MdeModulePkg/Include/Ppi/SmmAccess.h
+++ b/MdeModulePkg/Include/Ppi/SmmAccess.h
@@ -128,8 +128,9 @@ EFI_STATUS
 
 ///
 ///  EFI SMM Access PPI is used to control the visibility of the SMRAM on the 
platform.
-///  It abstracts the location and characteristics of SMRAM.  The expectation 
is
-///  that the north bridge or memory controller would publish this PPI.
+///  It abstracts the location and characteristics of SMRAM. The platform 
should report 
+///  all MMRAM via PEI_SMM_ACCESS_PPI. The expectation is that the north 
bridge or 
+///  memory controller would publish this PPI.
 /// 
 struct _PEI_SMM_ACCESS_PPI {
   PEI_SMM_OPEN  Open;
-- 
2.7.0.windows.1

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


[edk2] [Patch 0/2] Update comments to follow spec update.

2017-07-18 Thread Eric Dong
This patches series used to update comments to follow spec update.

Eric Dong (2):
  MdePkg SmmAccess2: Update comments to follow PI spec.
  MdeModulePkg SmmAccess: Update comments to follow PI spec.

 MdeModulePkg/Include/Ppi/SmmAccess.h | 5 +++--
 MdePkg/Include/Protocol/SmmAccess2.h | 5 +++--
 2 files changed, 6 insertions(+), 4 deletions(-)

-- 
2.7.0.windows.1

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


Re: [edk2] [Patch 5/6] edk2: Update to TianoCore Contribution Agreement 1.1

2017-07-18 Thread Jordan Justen
On 2017-07-18 14:17:00, Michael D Kinney wrote:
> https://bugzilla.tianocore.org/show_bug.cgi?id=629
> 
> Update the TianoCore Contribution Agreement from Version 1.0
> to Version 1.1 to cover open source documentation associated
> with the TianoCore project.
> 
> Version 1.0 covers source code files.  Version 1.1 is a
> backwards compatible extension that add support for document
> files in both source form and compiled form.
> 
> The edk2 repository is updated so the same contribution
> agreement is used by developers that work on TianoCore
> related source code or TianoCore related documents.
> 
> Links to RFC and Wiki on the GitBook documentation process
> * https://lists.01.org/pipermail/edk2-devel/2017-March/008654.html
> * https://github.com/tianocore-docs/edk2-TemplateSpecification/wiki
> 
> Cc: Leif Lindholm 
> Cc: Andrew Fish 
> Cc: Jordan Justen 
> Contributed-under: TianoCore Contribution Agreement 1.1
> Signed-off-by: Michael D Kinney 
> ---
>  Contributions.txt | 16 +++-
>  1 file changed, 11 insertions(+), 5 deletions(-)
> 
> diff --git a/Contributions.txt b/Contributions.txt
> index 06c60d8e17..e2e3437981 100644
> --- a/Contributions.txt
> +++ b/Contributions.txt
> @@ -1,4 +1,3 @@
> -
>  ==
>  = Code Contributions =
>  ==
> @@ -27,6 +26,7 @@ To make a contribution to a TianoCore project, follow these 
> steps.
> * MIT: http://opensource.org/licenses/MIT
> * Python-2.0: http://opensource.org/licenses/Python-2.0
> * Zlib: http://opensource.org/licenses/Zlib
> +   For documentation:  
> https://www.freebsd.org/copyright/freebsd-doc-license.html

As I noted before I think this would look more consistent:

"""
5. It is preferred that contributions are submitted using the same
   copyright license as the base project. When that is not possible,
   then contributions using the following licenses can be accepted:
   * BSD (2-clause): http://opensource.org/licenses/BSD-2-Clause
   * BSD (3-clause): http://opensource.org/licenses/BSD-3-Clause
   * MIT: http://opensource.org/licenses/MIT
   * Python-2.0: http://opensource.org/licenses/Python-2.0
   * Zlib: http://opensource.org/licenses/Zlib

   For documentation:
   * FreeBSD Documentation License
 https://www.freebsd.org/copyright/freebsd-doc-license.html
"""

I also asked if other documentation licenses were evaluated, such as
the 'good' licenses that Red Hat noted for Fedora:

https://fedoraproject.org/wiki/Licensing:Main?rd=Licensing#Documentation_Licenses

Anyway, the bullet format would lend itself to expanding the list in
the future.

-Jordan

>  
> Contributions of code put into the public domain can also be
> accepted.
> @@ -35,10 +35,10 @@ To make a contribution to a TianoCore project, follow 
> these steps.
> review will be required.
>  
>  
> -= TianoCore Contribution Agreement 1.0 =
> += TianoCore Contribution Agreement 1.1 =
>  
>  
> -INTEL CORPORATION ("INTEL") MAKES AVAILABLE SOFTWARE, DOCUMENTATION,
> +INTEL CORPORATION ("INTEL") MAKES AVAILABLE SOFTWARE, DOCUMENTATION 
> ("DOCUMENTATION"),
>  INFORMATION AND/OR OTHER MATERIALS FOR USE IN THE TIANOCORE OPEN SOURCE
>  PROJECT (COLLECTIVELY "CONTENT"). USE OF THE CONTENT IS GOVERNED BY THE
>  TERMS AND CONDITIONS OF THIS AGREEMENT BETWEEN YOU AND INTEL AND/OR THE
> @@ -51,14 +51,20 @@ AGREEMENT AND THE TERMS AND CONDITIONS OF ANY APPLICABLE 
> LICENSE
>  AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT
>  USE THE CONTENT.
>  
> -Unless otherwise indicated, all Content made available on the TianoCore
> +Unless otherwise indicated, all Content (except Documentation) made 
> available on the TianoCore
>  site is provided to you under the terms and conditions of the BSD
>  License ("BSD"). A copy of the BSD License is available at
>  http://opensource.org/licenses/bsd-license.php
>  or when applicable, in the associated License.txt file.
>  
> +Unless otherwise indicated, all Documentation made available on the
> +TianoCore site is provided to you under the terms and conditions of the
> +FreeBSD Documentation License ("FreeBSD"). A copy of the BSD License is
> +available at https://www.freebsd.org/copyright/freebsd-doc-license.html or,
> +when applicable, in the associated License.txt file.
> +
>  Certain other content may be made available under other licenses as
> -indicated in or with such Content. (For example, in a License.txt file.)
> +indicated in or with such Content (for example, in a License.txt file).
>  
>  You accept and agree to the following terms and conditions for Your
>  present and future Contributions submitted to TianoCore site. Except
> -- 
> 2.13.1.windows.2
> 
___
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel


Re: [edk2] [Patch 4/6] edk2: Remove commit message details from Contributions.txt

2017-07-18 Thread Jordan Justen
On 2017-07-18 14:16:59, Michael D Kinney wrote:
> https://bugzilla.tianocore.org/show_bug.cgi?id=629
> 
> Remove the change description, commit message, and
> patch email section from Contributions.txt.  This
> section is not part of the TianoCore Contribution
> Agreement.  The information is very important and is
> provided on the TianoCore web site and wiki and will
> be added to Readme.md in the root of the edk2
> repository.

I don't think this should be removed. If the readme is added at a
later time, then perhaps we could consider moving it.

This information is specifically about contributing to the EDK II
project, so why isn't Contributions.txt a better place than a generic
readme?

Some parts of this are closely tied to the contribution agreement
process. For example, the text: '"Signed-off-by" is the contributor's
signature identifying them by their real/legal name and their email
address.' It seems better to have this nearby the contribution
agreement text.

-Jordan

> 
> Cc: Leif Lindholm 
> Cc: Andrew Fish 
> Cc: Jordan Justen 
> Contributed-under: TianoCore Contribution Agreement 1.1
> Signed-off-by: Michael D Kinney 
> ---
>  Contributions.txt | 49 -
>  1 file changed, 49 deletions(-)
> 
> diff --git a/Contributions.txt b/Contributions.txt
> index f87cbd73c6..06c60d8e17 100644
> --- a/Contributions.txt
> +++ b/Contributions.txt
> @@ -34,55 +34,6 @@ To make a contribution to a TianoCore project, follow 
> these steps.
> Contributions using other licenses might be accepted, but further
> review will be required.
>  
> -=
> -= Change Description / Commit Message / Patch Email =
> -=
> -
> -Your change description should use the standard format for a
> -commit message, and must include your "Signed-off-by" signature
> -and the "Contributed-under" message.
> -
> -== Sample Change Description / Commit Message =
> -
> -=== Start of sample patch email message ===
> -
> -From: Contributor Name 
> -Subject: [PATCH] CodeModule: Brief-single-line-summary
> -
> -Full-commit-message
> -
> -Contributed-under: TianoCore Contribution Agreement 1.0
> -Signed-off-by: Contributor Name 
> 
> -
> -An extra message for the patch email which will not be considered part
> -of the commit message can be added here.
> -
> -Patch content inline or attached
> -
> -=== End of sample patch email message ===
> -
> -=== Notes for sample patch email ===
> -
> -* The first line of commit message is taken from the email's subject
> -  line following [PATCH]. The remaining portion of the commit message
> -  is the email's content until the '---' line.
> -* git format-patch is one way to create this format
> -
> -=== Definitions for sample patch email ===
> -
> -* "CodeModule" is a short idenfier for the affected code.  For
> -  example MdePkg, or MdeModulePkg UsbBusDxe.
> -* "Brief-single-line-summary" is a short summary of the change.
> -* The entire first line should be less than ~70 characters.
> -* "Full-commit-message" a verbose multiple line comment describing
> -  the change.  Each line should be less than ~70 characters.
> -* "Contributed-under" explicitely states that the contribution is
> -  made under the terms of the contribtion agreement.  This
> -  agreement is included below in this document.
> -* "Signed-off-by" is the contributor's signature identifying them
> -  by their real/legal name and their email address.
> -
>  
>  = TianoCore Contribution Agreement 1.0 =
>  
> -- 
> 2.13.1.windows.2
> 
___
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel


Re: [edk2] [Patch 3/6] edk2: Remove Tiano Contribution Agreement from packages

2017-07-18 Thread Jordan Justen
Why isn't this just squashed in with patch 2?

On 2017-07-18 14:16:58, Michael D Kinney wrote:
> https://bugzilla.tianocore.org/show_bug.cgi?id=629
> 
> Cc: Leif Lindholm 
> Cc: Andrew Fish 
> Cc: Jordan Justen 
> Contributed-under: TianoCore Contribution Agreement 1.1
> Signed-off-by: Michael D Kinney 
> ---
>  ArmPkg/Contributions.txt | 218 
> ---
>  ArmPlatformPkg/Contributions.txt | 218 
> ---

[snip]
___
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel


[edk2] [Patch 6/6] edk2: Reformat TianoCore Contribution Agreement 1.1

2017-07-18 Thread Michael D Kinney
https://bugzilla.tianocore.org/show_bug.cgi?id=629

Update formatting of Contributions.txt to line wrap
at 80 columns.

Cc: Leif Lindholm 
Cc: Andrew Fish 
Cc: Jordan Justen 
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Michael D Kinney 
---
 Contributions.txt | 26 +-
 1 file changed, 13 insertions(+), 13 deletions(-)

diff --git a/Contributions.txt b/Contributions.txt
index e2e3437981..fe53d1bade 100644
--- a/Contributions.txt
+++ b/Contributions.txt
@@ -26,7 +26,7 @@ To make a contribution to a TianoCore project, follow these 
steps.
* MIT: http://opensource.org/licenses/MIT
* Python-2.0: http://opensource.org/licenses/Python-2.0
* Zlib: http://opensource.org/licenses/Zlib
-   For documentation:  
https://www.freebsd.org/copyright/freebsd-doc-license.html
+   For documentation: 
https://www.freebsd.org/copyright/freebsd-doc-license.html
 
Contributions of code put into the public domain can also be
accepted.
@@ -38,22 +38,22 @@ To make a contribution to a TianoCore project, follow these 
steps.
 = TianoCore Contribution Agreement 1.1 =
 
 
-INTEL CORPORATION ("INTEL") MAKES AVAILABLE SOFTWARE, DOCUMENTATION 
("DOCUMENTATION"),
-INFORMATION AND/OR OTHER MATERIALS FOR USE IN THE TIANOCORE OPEN SOURCE
-PROJECT (COLLECTIVELY "CONTENT"). USE OF THE CONTENT IS GOVERNED BY THE
-TERMS AND CONDITIONS OF THIS AGREEMENT BETWEEN YOU AND INTEL AND/OR THE
-TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR
-REFERENCED BELOW. BY USING THE CONTENT, YOU AGREE THAT YOUR USE OF THE
-CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS
-OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED
-BELOW. IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS
+INTEL CORPORATION ("INTEL") MAKES AVAILABLE SOFTWARE, DOCUMENTATION
+("DOCUMENTATION"), INFORMATION AND/OR OTHER MATERIALS FOR USE IN THE
+TIANOCORE OPEN SOURCE PROJECT (COLLECTIVELY "CONTENT"). USE OF THE CONTENT
+IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT BETWEEN YOU AND
+INTEL AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR NOTICES
+INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU AGREE THAT YOUR
+USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND
+CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR
+REFERENCED BELOW. IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS
 AGREEMENT AND THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE
 AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT
 USE THE CONTENT.
 
-Unless otherwise indicated, all Content (except Documentation) made available 
on the TianoCore
-site is provided to you under the terms and conditions of the BSD
-License ("BSD"). A copy of the BSD License is available at
+Unless otherwise indicated, all Content (except Documentation) made available
+on the TianoCore site is provided to you under the terms and conditions of
+the BSD License ("BSD"). A copy of the BSD License is available at
 http://opensource.org/licenses/bsd-license.php
 or when applicable, in the associated License.txt file.
 
-- 
2.13.1.windows.2

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


[edk2] [Patch 2/6] edk2: Move Tiano Contribution Agreement to root

2017-07-18 Thread Michael D Kinney
https://bugzilla.tianocore.org/show_bug.cgi?id=629

Cc: Leif Lindholm 
Cc: Andrew Fish 
Cc: Jordan Justen 
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Michael D Kinney 
---
 AppPkg/Contributions.txt => Contributions.txt | 0
 1 file changed, 0 insertions(+), 0 deletions(-)
 rename AppPkg/Contributions.txt => Contributions.txt (100%)

diff --git a/AppPkg/Contributions.txt b/Contributions.txt
similarity index 100%
rename from AppPkg/Contributions.txt
rename to Contributions.txt
-- 
2.13.1.windows.2

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


[edk2] [Patch 5/6] edk2: Update to TianoCore Contribution Agreement 1.1

2017-07-18 Thread Michael D Kinney
https://bugzilla.tianocore.org/show_bug.cgi?id=629

Update the TianoCore Contribution Agreement from Version 1.0
to Version 1.1 to cover open source documentation associated
with the TianoCore project.

Version 1.0 covers source code files.  Version 1.1 is a
backwards compatible extension that add support for document
files in both source form and compiled form.

The edk2 repository is updated so the same contribution
agreement is used by developers that work on TianoCore
related source code or TianoCore related documents.

Links to RFC and Wiki on the GitBook documentation process
* https://lists.01.org/pipermail/edk2-devel/2017-March/008654.html
* https://github.com/tianocore-docs/edk2-TemplateSpecification/wiki

Cc: Leif Lindholm 
Cc: Andrew Fish 
Cc: Jordan Justen 
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Michael D Kinney 
---
 Contributions.txt | 16 +++-
 1 file changed, 11 insertions(+), 5 deletions(-)

diff --git a/Contributions.txt b/Contributions.txt
index 06c60d8e17..e2e3437981 100644
--- a/Contributions.txt
+++ b/Contributions.txt
@@ -1,4 +1,3 @@
-
 ==
 = Code Contributions =
 ==
@@ -27,6 +26,7 @@ To make a contribution to a TianoCore project, follow these 
steps.
* MIT: http://opensource.org/licenses/MIT
* Python-2.0: http://opensource.org/licenses/Python-2.0
* Zlib: http://opensource.org/licenses/Zlib
+   For documentation:  
https://www.freebsd.org/copyright/freebsd-doc-license.html
 
Contributions of code put into the public domain can also be
accepted.
@@ -35,10 +35,10 @@ To make a contribution to a TianoCore project, follow these 
steps.
review will be required.
 
 
-= TianoCore Contribution Agreement 1.0 =
+= TianoCore Contribution Agreement 1.1 =
 
 
-INTEL CORPORATION ("INTEL") MAKES AVAILABLE SOFTWARE, DOCUMENTATION,
+INTEL CORPORATION ("INTEL") MAKES AVAILABLE SOFTWARE, DOCUMENTATION 
("DOCUMENTATION"),
 INFORMATION AND/OR OTHER MATERIALS FOR USE IN THE TIANOCORE OPEN SOURCE
 PROJECT (COLLECTIVELY "CONTENT"). USE OF THE CONTENT IS GOVERNED BY THE
 TERMS AND CONDITIONS OF THIS AGREEMENT BETWEEN YOU AND INTEL AND/OR THE
@@ -51,14 +51,20 @@ AGREEMENT AND THE TERMS AND CONDITIONS OF ANY APPLICABLE 
LICENSE
 AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT
 USE THE CONTENT.
 
-Unless otherwise indicated, all Content made available on the TianoCore
+Unless otherwise indicated, all Content (except Documentation) made available 
on the TianoCore
 site is provided to you under the terms and conditions of the BSD
 License ("BSD"). A copy of the BSD License is available at
 http://opensource.org/licenses/bsd-license.php
 or when applicable, in the associated License.txt file.
 
+Unless otherwise indicated, all Documentation made available on the
+TianoCore site is provided to you under the terms and conditions of the
+FreeBSD Documentation License ("FreeBSD"). A copy of the BSD License is
+available at https://www.freebsd.org/copyright/freebsd-doc-license.html or,
+when applicable, in the associated License.txt file.
+
 Certain other content may be made available under other licenses as
-indicated in or with such Content. (For example, in a License.txt file.)
+indicated in or with such Content (for example, in a License.txt file).
 
 You accept and agree to the following terms and conditions for Your
 present and future Contributions submitted to TianoCore site. Except
-- 
2.13.1.windows.2

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


[edk2] [Patch 1/6] BaseTools/PatchCheck: Support Contribution Agreement 1.1

2017-07-18 Thread Michael D Kinney
https://bugzilla.tianocore.org/show_bug.cgi?id=628

Update PatchCheck.py to support either
"Contributed-under: TianoCore Contribution Agreement 1.0"
or "Contributed-under: TianoCore Contribution Agreement 1.1"
in the commit message.

Temporarily continue to allow the TianoCore Contribution
Agreement 1.0 agreement.

Cc: Leif Lindholm 
Cc: Andrew Fish 
Cc: Jordan Justen 
Cc: Liming Gao 
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Michael D Kinney 
---
 BaseTools/Scripts/PatchCheck.py | 9 ++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/BaseTools/Scripts/PatchCheck.py b/BaseTools/Scripts/PatchCheck.py
index 7bc5736dbf..43bfc2495c 100755
--- a/BaseTools/Scripts/PatchCheck.py
+++ b/BaseTools/Scripts/PatchCheck.py
@@ -75,10 +75,13 @@ class CommitMessageCheck:
 count += 1
 
 def check_contributed_under(self):
-cu_msg='Contributed-under: TianoCore Contribution Agreement 1.0'
+cu_msg='Contributed-under: TianoCore Contribution Agreement 1.1'
 if self.msg.find(cu_msg) < 0:
-self.error('Missing Contributed-under! (Note: this must be ' +
-   'added by the code contributor!)')
+# Allow 1.0 for now while EDK II community transitions to 1.1
+cu_msg='Contributed-under: TianoCore Contribution Agreement 1.0'
+if self.msg.find(cu_msg) < 0:
+self.error('Missing Contributed-under! (Note: this must be ' +
+   'added by the code contributor!)')
 
 @staticmethod
 def make_signature_re(sig, re_input=False):
-- 
2.13.1.windows.2

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


[edk2] [Patch 0/6] Update to Tiano Contribution Agreement 1.1

2017-07-18 Thread Michael D Kinney
https://bugzilla.tianocore.org/show_bug.cgi?id=628
https://bugzilla.tianocore.org/show_bug.cgi?id=629

New in V2
* Reorder checks in PatchCheck.py and add comments
* Split patch series up into more patches
* Add more detailed reason for change to commit messages 
* Rename CONTRIBUTIONS.TXT to Contributions.txt
* Reformat Contributions.txt to wrap at 80 columns

This series updates the contribution agreement from the
Tiano Contribution Agreement 1.0 to the Tiano Contribution
Agreement 1.1.  In addition, the duplication of the 
Contributions.txt file is removed and a single version of
Contributions.txt is added to the root of the edk2 repository.

The BaseTools/Scripts/PatchCheck.py tool is also updated to 
support the Tiano Contribution Agreement 1.1.

The RFC email discussion that covers the new contribution
agreement can be found here:

https://lists.01.org/pipermail/edk2-devel/2017-March/008924.html

This new agreement does not have any changes for code contributions.
It adds content to cover open source documentation contributions.

Cc: Leif Lindholm 
Cc: Andrew Fish 
Cc: Jordan Justen 
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Michael D Kinney 

Michael D Kinney (6):
  BaseTools/PatchCheck: Support Contribution Agreement 1.1
  edk2: Move Tiano Contribution Agreement to root
  edk2: Remove Tiano Contribution Agreement from packages
  edk2: Remove commit message details from Contributions.txt
  edk2: Update to TianoCore Contribution Agreement 1.1
  edk2: Reformat TianoCore Contribution Agreement 1.1

 ArmPkg/Contributions.txt  | 218 --
 ArmPlatformPkg/Contributions.txt  | 218 --
 ArmVirtPkg/Contributions.txt  | 218 --
 BaseTools/Contributions.txt   | 218 --
 BaseTools/Scripts/PatchCheck.py   |   9 +-
 BeagleBoardPkg/Contributions.txt  | 218 --
 AppPkg/Contributions.txt => Contributions.txt |  85 +++---
 CorebootModulePkg/Contributions.txt   | 218 --
 CorebootPayloadPkg/Contributions.txt  | 218 --
 CryptoPkg/Contributions.txt   | 218 --
 DuetPkg/Contributions.txt | 218 --
 EdkCompatibilityPkg/Contributions.txt | 218 --
 EdkShellBinPkg/Contributions.txt  | 218 --
 EdkShellPkg/Contributions.txt | 218 --
 EmbeddedPkg/Contributions.txt | 218 --
 EmulatorPkg/Contributions.txt | 218 --
 FatBinPkg/Contributions.txt   | 218 --
 FatPkg/Contributions.txt  | 218 --
 IntelFrameworkModulePkg/Contributions.txt | 218 --
 IntelFrameworkPkg/Contributions.txt   | 218 --
 IntelFsp2Pkg/Contributions.txt| 218 --
 IntelFsp2WrapperPkg/Contributions.txt | 218 --
 IntelFspPkg/Contributions.txt | 218 --
 IntelFspWrapperPkg/Contributions.txt  | 218 --
 IntelSiliconPkg/Contributions.txt | 218 --
 MdeModulePkg/Contributions.txt| 218 --
 MdePkg/Contributions.txt  | 218 --
 NetworkPkg/Contributions.txt  | 218 --
 Nt32Pkg/Contributions.txt | 218 --
 Omap35xxPkg/Contributions.txt | 218 --
 OptionRomPkg/Contributions.txt| 218 --
 OvmfPkg/Contributions.txt | 218 --
 PcAtChipsetPkg/Contributions.txt  | 218 --
 PerformancePkg/Contributions.txt  | 218 --
 QuarkPlatformPkg/Contributions.txt| 218 --
 QuarkSocPkg/Contributions.txt | 218 --
 SecurityPkg/Contributions.txt | 218 --
 ShellBinPkg/Contributions.txt | 218 --
 ShellPkg/Contributions.txt| 218 --
 SignedCapsulePkg/Contributions.txt| 218 --
 SourceLevelDebugPkg/Contributions.txt | 218 --
 StdLib/Contributions.txt  | 218 --
 StdLibPrivateInternalFiles/Contributions.txt  | 218 --
 UefiCpuPkg/Contributions.txt 

[edk2] [Patch 4/6] edk2: Remove commit message details from Contributions.txt

2017-07-18 Thread Michael D Kinney
https://bugzilla.tianocore.org/show_bug.cgi?id=629

Remove the change description, commit message, and
patch email section from Contributions.txt.  This
section is not part of the TianoCore Contribution
Agreement.  The information is very important and is
provided on the TianoCore web site and wiki and will
be added to Readme.md in the root of the edk2
repository.

Cc: Leif Lindholm 
Cc: Andrew Fish 
Cc: Jordan Justen 
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Michael D Kinney 
---
 Contributions.txt | 49 -
 1 file changed, 49 deletions(-)

diff --git a/Contributions.txt b/Contributions.txt
index f87cbd73c6..06c60d8e17 100644
--- a/Contributions.txt
+++ b/Contributions.txt
@@ -34,55 +34,6 @@ To make a contribution to a TianoCore project, follow these 
steps.
Contributions using other licenses might be accepted, but further
review will be required.
 
-=
-= Change Description / Commit Message / Patch Email =
-=
-
-Your change description should use the standard format for a
-commit message, and must include your "Signed-off-by" signature
-and the "Contributed-under" message.
-
-== Sample Change Description / Commit Message =
-
-=== Start of sample patch email message ===
-
-From: Contributor Name 
-Subject: [PATCH] CodeModule: Brief-single-line-summary
-
-Full-commit-message
-
-Contributed-under: TianoCore Contribution Agreement 1.0
-Signed-off-by: Contributor Name 

-
-An extra message for the patch email which will not be considered part
-of the commit message can be added here.
-
-Patch content inline or attached
-
-=== End of sample patch email message ===
-
-=== Notes for sample patch email ===
-
-* The first line of commit message is taken from the email's subject
-  line following [PATCH]. The remaining portion of the commit message
-  is the email's content until the '---' line.
-* git format-patch is one way to create this format
-
-=== Definitions for sample patch email ===
-
-* "CodeModule" is a short idenfier for the affected code.  For
-  example MdePkg, or MdeModulePkg UsbBusDxe.
-* "Brief-single-line-summary" is a short summary of the change.
-* The entire first line should be less than ~70 characters.
-* "Full-commit-message" a verbose multiple line comment describing
-  the change.  Each line should be less than ~70 characters.
-* "Contributed-under" explicitely states that the contribution is
-  made under the terms of the contribtion agreement.  This
-  agreement is included below in this document.
-* "Signed-off-by" is the contributor's signature identifying them
-  by their real/legal name and their email address.
-
 
 = TianoCore Contribution Agreement 1.0 =
 
-- 
2.13.1.windows.2

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


Re: [edk2] [Patch 2/2] edk2: Update to Tiano Contribution Agreement 1.1

2017-07-18 Thread Kinney, Michael D
Hi Jordan,

Thanks for the feedback.

I will add more background to the commit message from the
details in the Bugzilla and in RFC in edk2-devel.

I agree to change the filename from CONTRIBUTIONS.txt
to Contributions.txt to follow EDK II file name convention.

The Free BSD Documentation project was used as a reference
for this update.  This most closely matches the BSD license
used for the majority of the EDK II source files but adds
language for documentation files in both source and compiled
forms.

https://www.freebsd.org/copyright/freebsd-doc-license.html

Yes. If a document was provided under the BSD 2-clause license
for source code, the document would be rejected and a request
would be made to use the documentation license for the TianoCore
Project.

https://github.com/tianocore-docs/edk2-TemplateSpecification/blob/master/LICENSE.txt

Details on all the license requirements for a document in
document source files and compiled documents can be found
in the following Wiki:

https://github.com/tianocore-docs/edk2-TemplateSpecification/wiki

Document source file headers:

https://github.com/tianocore-docs/edk2-TemplateSpecification/wiki/TianoCore-Documents-MarkDown-File-Headers

Published document license and copyright requirements:

https://github.com/tianocore-docs/edk2-TemplateSpecification/wiki/TianoCore-Documents-Layout#published-document-license-and-copyright

I am going to add a top level Readme.md to the edk2 repo.
I will add the content that was removed from Contributions.txt
to this Readme.md file.  The contents of Readme.md are 
shown when anyone browses to the edk2 repo on GitHub, so it
is a more obvious place to put the details for how to make 
a contribution and I will also add links to the wiki pages
with complete details on this topic.

I agree that Contributions.txt can be reflowed to 80 columns.
I will split the series into additional patches, so the 
text change is obvious without reflow followed by a patch with
reflow.  I like your idea to do 4 patches.

I also agree that a space can be added before the '('.

I will send out a V2 version of the series soon.

Best regards,

Mike


> -Original Message-
> From: Justen, Jordan L
> Sent: Monday, July 17, 2017 5:02 PM
> To: Kinney, Michael D ; edk2-
> de...@lists.01.org
> Cc: Andrew Fish ; Leif Lindholm
> 
> Subject: Re: [edk2] [Patch 2/2] edk2: Update to Tiano
> Contribution Agreement 1.1
> 
> On 2017-07-17 14:28:29, Michael D Kinney wrote:
> > https://bugzilla.tianocore.org/show_bug.cgi?id=629
> >
> 
> Why doesn't the commit message mention the purpose of the 1.0 to
> 1.1
> change?
> 
> > Cc: Leif Lindholm 
> > Cc: Andrew Fish 
> > Contributed-under: TianoCore Contribution Agreement 1.1
> > Signed-off-by: Michael D Kinney 
> > ---
> >
> > diff --git a/AppPkg/Contributions.txt b/CONTRIBUTIONS.txt
> 
> Why is this not named Contributions.txt? I think CONTRIBUTIONS
> would
> be common for open source, and EDK II would prefer
> Contributions.txt,
> but CONTRIBUTIONS.txt looks like some sort of hybrid. :)
> 
> > similarity index 79%
> > rename from AppPkg/Contributions.txt
> > rename to CONTRIBUTIONS.txt
> > index f87cbd73c6..0c9c2be6e7 100644
> > --- a/AppPkg/Contributions.txt
> > +++ b/CONTRIBUTIONS.txt
> > @@ -1,4 +1,3 @@
> > -
> >  ==
> >  = Code Contributions =
> >  ==
> > @@ -27,6 +26,7 @@ To make a contribution to a TianoCore
> project, follow these steps.
> > * MIT: http://opensource.org/licenses/MIT
> > * Python-2.0: http://opensource.org/licenses/Python-2.0
> > * Zlib: http://opensource.org/licenses/Zlib
> > +   For documentation:
> https://www.freebsd.org/copyright/freebsd-doc-license.html
> >
> 
> I think you should add a blank line above 'For documentation' and
> move
> the url to the next line with a bullet.
> 
> Can you explain why the different license is required? Maybe that
> should be in the commit message?
> 
> Fedora has a wiki page about documentation licensing options:
> 
> https://fedoraproject.org/wiki/Licensing:Main?rd=Licensing#Docume
> ntation_Licenses
> 
> Were any of these other options considered?
> 
> If someone contributed a document using the BSD license, would it
> be
> rejected?
> 
> >
> > -=
> > -= Change Description / Commit Message / Patch Email =
> > -=
> > -
> 
> [snip]
> 
> > -* "Signed-off-by" is the contributor's signature identifying
> them
> > -  by their real/legal name and their email address.
> > -
> 
> Why is this all removed? This was one area we could point
> contributors
> when they don't know how to contribute a patch.
> 
> >  
> > -= TianoCore Contribution Agreement 1.0 =
> > += TianoCore Contribution Agreement 1.1 =
> >  
> >
> > -INTEL CORPORATION ("INTEL") MAKES AVAILABLE SOFTWARE,
> DOCUMENTATION,
> > +INTEL CORPORATION ("INTEL") MAKES AVAILABLE

Re: [edk2] [Patch 1/2] BaseTools/PatchCheck: Support Contribution Agreement 1.1

2017-07-18 Thread Jordan Justen
On 2017-07-18 08:59:46, Kinney, Michael D wrote:
> Hi Jordan,
> 
> I can update the logic.  The loop of supported
> version values looks good.
> 
> One of the reasons I choose the style I did is that 
> this patch is intended to be short lived.  I would
> like to see everyone transition to the new agreement
> in their commit messages.  I know there are patches 
> in progress, so we need a period of time where both
> are supported.  I a month or two, I would like to 
> require the 1.1 agreement in the commit messages.
> 
> Adding flexibility in the compare did not make much
> sense if we are going to use one most of the time.

Oh. Good point. What about something like:

def check_contributed_under(self):
cu_msg='Contributed-under: TianoCore Contribution Agreement 1.1'
if self.msg.find(cu_msg) < 0:
# Allow 1.0 for now while EDK II community transitions to 1.1
cu_msg='Contributed-under: TianoCore Contribution Agreement 1.0'
if self.msg.find(cu_msg) < 0:
self.error('Missing Contributed-under! (Note: this must be ' +
   'added by the code contributor!)')

And, maybe we could mention in the commit message that allowing 1.0 is
temporary?

With that: Reviewed-by: Jordan Justen 
___
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel


Re: [edk2] [PATCH v2 2/2] EmbeddedPkg: add Android boot device path and guid

2017-07-18 Thread Leif Lindholm
On Thu, Jul 06, 2017 at 09:29:06PM +0800, Jun Nie wrote:
> The device path specifies where to load android boot image.
> 
> Contributed-under: TianoCore Contribution Agreement 1.0
> Signed-off-by: Jun Nie 

No objections to this one, once you fix the token issue you identified
yourself.

Reviewed-by: Leif Lindholm 


> ---
>  EmbeddedPkg/EmbeddedPkg.dec | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/EmbeddedPkg/EmbeddedPkg.dec b/EmbeddedPkg/EmbeddedPkg.dec
> index 4cd528a..cf89af2 100644
> --- a/EmbeddedPkg/EmbeddedPkg.dec
> +++ b/EmbeddedPkg/EmbeddedPkg.dec
> @@ -80,6 +80,7 @@
>gAndroidFastbootPlatformProtocolGuid =  { 0x524685a0, 0x89a0, 0x11e3, 
> {0x9d, 0x4d, 0xbf, 0xa9, 0xf6, 0xa4, 0x03, 0x08}}
>gUsbDeviceProtocolGuid =  { 0x021bd2ca, 0x51d2, 0x11e3, {0x8e, 0x56, 0xb7, 
> 0x54, 0x17, 0xc7,  0x0b, 0x44 }}
>gPlatformGpioProtocolGuid = { 0x52ce9845, 0x5af4, 0x43e2, {0xba, 0xfd, 
> 0x23, 0x08, 0x12, 0x54, 0x7a, 0xc2 }}
> +  gAbootimgProtocolGuid = { 0x9859bb19, 0x407c, 0x4f8b, {0xbc, 0xe1, 0xf8, 
> 0xda, 0x65, 0x65, 0xf4, 0xa5 }}
>  
>  [PcdsFeatureFlag.common]
>gEmbeddedTokenSpaceGuid.PcdEmbeddedMacBoot|FALSE|BOOLEAN|0x0001
> @@ -181,6 +182,7 @@
>
> gEmbeddedTokenSpaceGuid.PcdAndroidFastbootUsbProductId|0xbeef|UINT32|0x0023
>gEmbeddedTokenSpaceGuid.PcdAndroidFastbootTcpPort|1234|UINT32|0x0024
>  
> +  gEmbeddedTokenSpaceGuid.PcdAndroidBootDevicePath|L""|VOID*|0x0025
>  
>  [PcdsFixedAtBuild.ARM]
>gEmbeddedTokenSpaceGuid.PcdPrePiCpuMemorySize|32|UINT8|0x0010
> -- 
> 1.9.1
> 
___
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel


Re: [edk2] [PATCH v2 1/2] EmbeddedPkg/AndroidBoot: boot android kernel from storage

2017-07-18 Thread Leif Lindholm
On Thu, Jul 06, 2017 at 09:29:05PM +0800, Jun Nie wrote:
> Add an android kernel loader that could load kernel from storage
> device.

UEFI can already load a kernel (with the EFI stub) from a storage
device. Please explain in the commit message how this support differs
from that.

What relation does this code have to AndroidFastbootApp?

> This patch is from Haojian's code.

Could you put a link to the origin of the code (preferably the
specific commit)?

> The minor change
> is that alternative dtb is searched in second loader binary of
> Android bootimage if dtb is not found after Linux kernel.
> 
> Contributed-under: TianoCore Contribution Agreement 1.0
> Signed-off-by: Jun Nie 
> ---
>  .../Application/AndroidBoot/AndroidBootApp.c   | 129 
>  .../Application/AndroidBoot/AndroidBootApp.inf |  64 
>  EmbeddedPkg/Include/Library/AbootimgLib.h  |  65 
>  EmbeddedPkg/Include/Protocol/Abootimg.h|  47 +++
>  EmbeddedPkg/Library/AbootimgLib/AbootimgLib.c  | 350 
> +
>  EmbeddedPkg/Library/AbootimgLib/AbootimgLib.inf|  48 +++

For proper CamelCase, I think the library name should be
AndroidBootImageLib, and the filenames (and macros) updated similarly.

>  6 files changed, 703 insertions(+)
>  create mode 100644 EmbeddedPkg/Application/AndroidBoot/AndroidBootApp.c
>  create mode 100644 EmbeddedPkg/Application/AndroidBoot/AndroidBootApp.inf
>  create mode 100644 EmbeddedPkg/Include/Library/AbootimgLib.h
>  create mode 100644 EmbeddedPkg/Include/Protocol/Abootimg.h
>  create mode 100644 EmbeddedPkg/Library/AbootimgLib/AbootimgLib.c
>  create mode 100644 EmbeddedPkg/Library/AbootimgLib/AbootimgLib.inf
> 
> diff --git a/EmbeddedPkg/Application/AndroidBoot/AndroidBootApp.c 
> b/EmbeddedPkg/Application/AndroidBoot/AndroidBootApp.c
> new file mode 100644
> index 000..9ed931b
> --- /dev/null
> +++ b/EmbeddedPkg/Application/AndroidBoot/AndroidBootApp.c
> @@ -0,0 +1,129 @@
> +/** @file
> +
> +  Copyright (c) 2013-2014, ARM Ltd. All rights reserved.
> +  Copyright (c) 2017, Linaro. 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 
> +#include 
> +#include 
> +#include 
> +#include 
> +#include 
> +#include 
> +
> +#include 
> +#include 
> +
> +#define IS_DEVICE_PATH_NODE(node,type,subtype) (((node)->Type == (type)) && 
> ((node)->SubType == (subtype)))

Would prefer for this to be moved into a common header file (BdsLib.h
?) rather than copied into multiple .c files.

> +
> +#define ALIGN(x, a)(((x) + ((a) - 1)) & ~((a) - 1))

Rather use one of the ALIGN_ macros from Base.h.

> +
> +EFI_STATUS
> +EFIAPI
> +AndroidBootAppEntryPoint (
> +  IN EFI_HANDLEImageHandle,
> +  IN EFI_SYSTEM_TABLE  *SystemTable
> +  )
> +{
> +  EFI_STATUS  Status;
> +  CHAR16  *BootPathStr;
> +  EFI_DEVICE_PATH_FROM_TEXT_PROTOCOL  *EfiDevicePathFromTextProtocol;
> +  EFI_DEVICE_PATH *DevicePath;
> +  EFI_DEVICE_PATH_PROTOCOL*Node, *NextNode;
> +  EFI_BLOCK_IO_PROTOCOL   *BlockIo;
> +  UINT32  MediaId, BlockSize;
> +  VOID*Buffer;
> +  EFI_HANDLE  Handle;
> +  UINTN   Size;
> +
> +  BootPathStr = (CHAR16 *)PcdGetPtr (PcdAndroidBootDevicePath);
> +  ASSERT (BootPathStr != NULL);
> +  Status = gBS->LocateProtocol (&gEfiDevicePathFromTextProtocolGuid, NULL, 
> (VOID **)&EfiDevicePathFromTextProtocol);
> +  ASSERT_EFI_ERROR(Status);
> +  DevicePath = (EFI_DEVICE_PATH 
> *)EfiDevicePathFromTextProtocol->ConvertTextToDevicePath (BootPathStr);
> +  ASSERT (DevicePath != NULL);
> +
> +  /* Find DevicePath node of Partition */
> +  NextNode = DevicePath;
> +  while (1) {
> +Node = NextNode;
> +if (IS_DEVICE_PATH_NODE (Node, MEDIA_DEVICE_PATH, MEDIA_HARDDRIVE_DP)) {
> +  break;
> +}
> +NextNode = NextDevicePathNode (Node);
> +  }
> +
> +  Status = gBS->LocateDevicePath (&gEfiDevicePathProtocolGuid, &DevicePath, 
> &Handle);
> +  if (EFI_ERROR (Status)) {
> +return Status;
> +  }
> +
> +  Status = gBS->OpenProtocol (
> +  Handle,
> +  &gEfiBlockIoProtocolGuid,
> +  (VOID **) &BlockIo,
> +  gImageHandle,
> +  NULL,
> +  EFI_OPEN_PROTOCOL_GET_PROTOCOL
> +  );
> +  if (EFI_ERROR (Status)) {
> +DEBUG ((EFI_D_ERROR, "Failed to get BlockIo: %r\n", Statu

Re: [edk2] [Patch 1/2] BaseTools/PatchCheck: Support Contribution Agreement 1.1

2017-07-18 Thread Kinney, Michael D
Hi Jordan,

I can update the logic.  The loop of supported
version values looks good.

One of the reasons I choose the style I did is that 
this patch is intended to be short lived.  I would
like to see everyone transition to the new agreement
in their commit messages.  I know there are patches 
in progress, so we need a period of time where both
are supported.  I a month or two, I would like to 
require the 1.1 agreement in the commit messages.

Adding flexibility in the compare did not make much
sense if we are going to use one most of the time.

Thanks,

Mike




> -Original Message-
> From: Justen, Jordan L
> Sent: Monday, July 17, 2017 3:14 PM
> To: Kinney, Michael D ; edk2-
> de...@lists.01.org
> Cc: Leif Lindholm ; Andrew Fish
> ; Gao, Liming 
> Subject: Re: [Patch 1/2] BaseTools/PatchCheck: Support
> Contribution Agreement 1.1
> 
> On 2017-07-17 14:28:28, Michael D Kinney wrote:
> > https://bugzilla.tianocore.org/show_bug.cgi?id=628
> >
> > Update PatchCheck.py to support either
> > "Contributed-under: TianoCore Contribution Agreement 1.0"
> > or "Contributed-under: TianoCore Contribution Agreement 1.1"
> > in the commit message.
> >
> > Cc: Leif Lindholm 
> > Cc: Andrew Fish 
> > Cc: Jordan Justen 
> > Cc: Liming Gao 
> > Contributed-under: TianoCore Contribution Agreement 1.1
> > Signed-off-by: Michael D Kinney 
> > ---
> >  BaseTools/Scripts/PatchCheck.py | 6 --
> >  1 file changed, 4 insertions(+), 2 deletions(-)
> >
> > diff --git a/BaseTools/Scripts/PatchCheck.py
> b/BaseTools/Scripts/PatchCheck.py
> > index 7bc5736dbf..135f1c0112 100755
> > --- a/BaseTools/Scripts/PatchCheck.py
> > +++ b/BaseTools/Scripts/PatchCheck.py
> > @@ -77,8 +77,10 @@ class CommitMessageCheck:
> >  def check_contributed_under(self):
> >  cu_msg='Contributed-under: TianoCore Contribution
> Agreement 1.0'
> >  if self.msg.find(cu_msg) < 0:
> > -self.error('Missing Contributed-under! (Note: this
> must be ' +
> > -   'added by the code contributor!)')
> > +cu_msg='Contributed-under: TianoCore Contribution
> Agreement 1.1'
> > +if self.msg.find(cu_msg) < 0:
> > +self.error('Missing Contributed-under! (Note:
> this must be ' +
> > +   'added by the code contributor!)')
> 
> I'd probably try for a regex. Something like:
> 
> '^\s*Contributed-under: TianoCore Contribution Agreement
> 1\.[01]\s*$'
> 
> But you could also do something like:
> 
> for ver in ('1.0', '1.1'):
> cu_msg='Contributed-under: TianoCore Contribution Agreement '
> + ver
> ...
> if found: return
> self.error('Missing Contributed-under! (Note: this must be ' +
>'added by the code contributor!)')
> 
> -Jordan
___
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel


Re: [edk2] MdeModulePkg/SerialDxe: Inconsistent timeout processing in SerialRead

2017-07-18 Thread Heyi Guo

Hi Star,

I think your proposed patch is fine.

Thanks.

Gary (Heyi Guo)


在 7/18/2017 4:39 PM, Zeng, Star 写道:

Gary,
SerialDxe is a wrapper of SerialPortLib to produce serial io protocol.
If let SerialDxe to handle the TimeOut, seemingly it can only check 
SerialPortPoll() and read data by SerialPortRead() one byte by one byte, for 
example like below.
Do you have any proposed patch?

Ray and Laszlo,
Do you have any comments?



debf0d1b85e7a30defd29838abb20a44dd9ec69b
  MdeModulePkg/Universal/SerialDxe/SerialIo.c | 18 --
  1 file changed, 16 insertions(+), 2 deletions(-)

diff --git a/MdeModulePkg/Universal/SerialDxe/SerialIo.c 
b/MdeModulePkg/Universal/SerialDxe/SerialIo.c
index d2383e56dd8f..b05603d7f3b5 100644
--- a/MdeModulePkg/Universal/SerialDxe/SerialIo.c
+++ b/MdeModulePkg/Universal/SerialDxe/SerialIo.c
@@ -465,11 +465,25 @@ SerialRead (
)
  {
UINTN Count;
+  UINTN TimeOut;
  
Count = 0;
  
-  if (SerialPortPoll ()) {

-Count = SerialPortRead (Buffer, *BufferSize);
+  while (Count < *BufferSize) {
+TimeOut = 0;
+while (TimeOut < mSerialIoMode.TimeOut) {
+  if (SerialPortPoll ()) {
+break;
+  }
+  gBS->Stall (10);
+  TimeOut += 10;
+}
+if (TimeOut >= mSerialIoMode.TimeOut) {
+  break;
+}
+SerialPortRead (Buffer, 1);
+Count++;
+Buffer = (VOID *) ((UINT8 *) Buffer + 1);
}
  
if (Count != *BufferSize) {




Thanks,
Star
-Original Message-
From: edk2-devel [mailto:edk2-devel-boun...@lists.01.org] On Behalf Of Heyi Guo
Sent: Monday, July 17, 2017 12:23 PM
To: edk2-devel@lists.01.org
Subject: [edk2] MdeModulePkg/SerialDxe: Inconsistent timeout processing in 
SerialRead

Hi Folks,

In SerialRead function in MdeModulePkg/Universal/SerialDxe/SerialIo.c,
it seems the timeout processing in SerialRead is not consistent.

Since SerialPortPoll only checks the status of serial port and returns 
immediately, and SerialPortRead does not really implement a time out mechanism 
and will always wait for enough input, it will cause below
results:

1. If there is no serial input at all, this interface will return timeout 
immediately without any waiting;

2. If there is A characters in serial port FIFO, and caller requires A+1 
characters, it will wait until a new input is coming and timeout will not 
really occur.

As SerialPortLib is a simple library implementation, I think it is better to 
improve SerialIoDxe driver instead of SerialPortLib.

Please let me know your comments about this.

Thanks and regards,

Gary (Heyi Guo)

EFI_STATUS
EFIAPI
SerialRead (
IN EFI_SERIAL_IO_PROTOCOL *This,
IN OUT UINTN  *BufferSize,
OUT VOID  *Buffer
)
{
UINTN Count;

Count = 0;

if (SerialPortPoll ()) {
  Count = SerialPortRead (Buffer, *BufferSize);
}

if (Count != *BufferSize) {
  *BufferSize = Count;
  return EFI_TIMEOUT;
}

return EFI_SUCCESS;
}

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


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


Re: [edk2] [PATCH v2 1/2] EmbeddedPkg/AndroidBoot: boot android kernel from storage

2017-07-18 Thread Jun Nie
2017-07-06 21:29 GMT+08:00 Jun Nie :
> Add an android kernel loader that could load kernel from storage
> device. This patch is from Haojian's code. The minor change
> is that alternative dtb is searched in second loader binary of
> Android bootimage if dtb is not found after Linux kernel.
>
> Contributed-under: TianoCore Contribution Agreement 1.0
> Signed-off-by: Jun Nie 

Leif,

Could you help comment these two android boot BDS patches? Thank you!

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


Re: [edk2] MdeModulePkg/SerialDxe: Inconsistent timeout processing in SerialRead

2017-07-18 Thread Ni, Ruiyu
Star,
Your change looks good.

Thanks/Ray

> -Original Message-
> From: Zeng, Star
> Sent: Tuesday, July 18, 2017 4:39 PM
> To: Heyi Guo ; edk2-devel@lists.01.org; Ni, Ruiyu
> ; Laszlo Ersek (ler...@redhat.com)
> 
> Cc: Zeng, Star 
> Subject: RE: [edk2] MdeModulePkg/SerialDxe: Inconsistent timeout
> processing in SerialRead
> 
> Gary,
> SerialDxe is a wrapper of SerialPortLib to produce serial io protocol.
> If let SerialDxe to handle the TimeOut, seemingly it can only check
> SerialPortPoll() and read data by SerialPortRead() one byte by one byte, for
> example like below.
> Do you have any proposed patch?
> 
> Ray and Laszlo,
> Do you have any comments?
> 
> 
> 
> debf0d1b85e7a30defd29838abb20a44dd9ec69b
>  MdeModulePkg/Universal/SerialDxe/SerialIo.c | 18 --
>  1 file changed, 16 insertions(+), 2 deletions(-)
> 
> diff --git a/MdeModulePkg/Universal/SerialDxe/SerialIo.c
> b/MdeModulePkg/Universal/SerialDxe/SerialIo.c
> index d2383e56dd8f..b05603d7f3b5 100644
> --- a/MdeModulePkg/Universal/SerialDxe/SerialIo.c
> +++ b/MdeModulePkg/Universal/SerialDxe/SerialIo.c
> @@ -465,11 +465,25 @@ SerialRead (
>)
>  {
>UINTN Count;
> +  UINTN TimeOut;
> 
>Count = 0;
> 
> -  if (SerialPortPoll ()) {
> -Count = SerialPortRead (Buffer, *BufferSize);
> +  while (Count < *BufferSize) {
> +TimeOut = 0;
> +while (TimeOut < mSerialIoMode.TimeOut) {
> +  if (SerialPortPoll ()) {
> +break;
> +  }
> +  gBS->Stall (10);
> +  TimeOut += 10;
> +}
> +if (TimeOut >= mSerialIoMode.TimeOut) {
> +  break;
> +}
> +SerialPortRead (Buffer, 1);
> +Count++;
> +Buffer = (VOID *) ((UINT8 *) Buffer + 1);
>}
> 
>if (Count != *BufferSize) {
> 
> 
> 
> Thanks,
> Star
> -Original Message-
> From: edk2-devel [mailto:edk2-devel-boun...@lists.01.org] On Behalf Of
> Heyi Guo
> Sent: Monday, July 17, 2017 12:23 PM
> To: edk2-devel@lists.01.org
> Subject: [edk2] MdeModulePkg/SerialDxe: Inconsistent timeout processing
> in SerialRead
> 
> Hi Folks,
> 
> In SerialRead function in MdeModulePkg/Universal/SerialDxe/SerialIo.c,
> it seems the timeout processing in SerialRead is not consistent.
> 
> Since SerialPortPoll only checks the status of serial port and returns
> immediately, and SerialPortRead does not really implement a time out
> mechanism and will always wait for enough input, it will cause below
> results:
> 
> 1. If there is no serial input at all, this interface will return timeout
> immediately without any waiting;
> 
> 2. If there is A characters in serial port FIFO, and caller requires A+1
> characters, it will wait until a new input is coming and timeout will not 
> really
> occur.
> 
> As SerialPortLib is a simple library implementation, I think it is better to
> improve SerialIoDxe driver instead of SerialPortLib.
> 
> Please let me know your comments about this.
> 
> Thanks and regards,
> 
> Gary (Heyi Guo)
> 
> EFI_STATUS
> EFIAPI
> SerialRead (
>IN EFI_SERIAL_IO_PROTOCOL *This,
>IN OUT UINTN  *BufferSize,
>OUT VOID  *Buffer
>)
> {
>UINTN Count;
> 
>Count = 0;
> 
>if (SerialPortPoll ()) {
>  Count = SerialPortRead (Buffer, *BufferSize);
>}
> 
>if (Count != *BufferSize) {
>  *BufferSize = Count;
>  return EFI_TIMEOUT;
>}
> 
>return EFI_SUCCESS;
> }
> 
> ___
> edk2-devel mailing list
> edk2-devel@lists.01.org
> https://lists.01.org/mailman/listinfo/edk2-devel
___
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel


Re: [edk2] MdeModulePkg/SerialDxe: Inconsistent timeout processing in SerialRead

2017-07-18 Thread Zeng, Star
Gary,
SerialDxe is a wrapper of SerialPortLib to produce serial io protocol.
If let SerialDxe to handle the TimeOut, seemingly it can only check 
SerialPortPoll() and read data by SerialPortRead() one byte by one byte, for 
example like below.
Do you have any proposed patch?

Ray and Laszlo,
Do you have any comments?



debf0d1b85e7a30defd29838abb20a44dd9ec69b
 MdeModulePkg/Universal/SerialDxe/SerialIo.c | 18 --
 1 file changed, 16 insertions(+), 2 deletions(-)

diff --git a/MdeModulePkg/Universal/SerialDxe/SerialIo.c 
b/MdeModulePkg/Universal/SerialDxe/SerialIo.c
index d2383e56dd8f..b05603d7f3b5 100644
--- a/MdeModulePkg/Universal/SerialDxe/SerialIo.c
+++ b/MdeModulePkg/Universal/SerialDxe/SerialIo.c
@@ -465,11 +465,25 @@ SerialRead (
   )
 {
   UINTN Count;
+  UINTN TimeOut;
 
   Count = 0;
 
-  if (SerialPortPoll ()) {
-Count = SerialPortRead (Buffer, *BufferSize);
+  while (Count < *BufferSize) {
+TimeOut = 0;
+while (TimeOut < mSerialIoMode.TimeOut) {
+  if (SerialPortPoll ()) {
+break;
+  }
+  gBS->Stall (10);
+  TimeOut += 10;
+}
+if (TimeOut >= mSerialIoMode.TimeOut) {
+  break;
+}
+SerialPortRead (Buffer, 1);
+Count++;
+Buffer = (VOID *) ((UINT8 *) Buffer + 1);
   }
 
   if (Count != *BufferSize) {



Thanks,
Star
-Original Message-
From: edk2-devel [mailto:edk2-devel-boun...@lists.01.org] On Behalf Of Heyi Guo
Sent: Monday, July 17, 2017 12:23 PM
To: edk2-devel@lists.01.org
Subject: [edk2] MdeModulePkg/SerialDxe: Inconsistent timeout processing in 
SerialRead

Hi Folks,

In SerialRead function in MdeModulePkg/Universal/SerialDxe/SerialIo.c,
it seems the timeout processing in SerialRead is not consistent.

Since SerialPortPoll only checks the status of serial port and returns 
immediately, and SerialPortRead does not really implement a time out mechanism 
and will always wait for enough input, it will cause below
results:

1. If there is no serial input at all, this interface will return timeout 
immediately without any waiting;

2. If there is A characters in serial port FIFO, and caller requires A+1 
characters, it will wait until a new input is coming and timeout will not 
really occur.

As SerialPortLib is a simple library implementation, I think it is better to 
improve SerialIoDxe driver instead of SerialPortLib.

Please let me know your comments about this.

Thanks and regards,

Gary (Heyi Guo)

EFI_STATUS
EFIAPI
SerialRead (
   IN EFI_SERIAL_IO_PROTOCOL *This,
   IN OUT UINTN  *BufferSize,
   OUT VOID  *Buffer
   )
{
   UINTN Count;

   Count = 0;

   if (SerialPortPoll ()) {
 Count = SerialPortRead (Buffer, *BufferSize);
   }

   if (Count != *BufferSize) {
 *BufferSize = Count;
 return EFI_TIMEOUT;
   }

   return EFI_SUCCESS;
}

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


Re: [edk2] MdeModulePkg/SerialDxe: Inconsistent timeout processing in SerialRead

2017-07-18 Thread Heyi Guo

+cc maintainers :)


在 7/17/2017 12:23 PM, Heyi Guo 写道:

Hi Folks,

In SerialRead function in MdeModulePkg/Universal/SerialDxe/SerialIo.c, 
it seems the timeout processing in SerialRead is not consistent.


Since SerialPortPoll only checks the status of serial port and returns 
immediately, and SerialPortRead does not really implement a time out 
mechanism and will always wait for enough input, it will cause below 
results:


1. If there is no serial input at all, this interface will return 
timeout immediately without any waiting;


2. If there is A characters in serial port FIFO, and caller requires 
A+1 characters, it will wait until a new input is coming and timeout 
will not really occur.


As SerialPortLib is a simple library implementation, I think it is 
better to improve SerialIoDxe driver instead of SerialPortLib.


Please let me know your comments about this.

Thanks and regards,

Gary (Heyi Guo)

EFI_STATUS
EFIAPI
SerialRead (
  IN EFI_SERIAL_IO_PROTOCOL *This,
  IN OUT UINTN  *BufferSize,
  OUT VOID  *Buffer
  )
{
  UINTN Count;

  Count = 0;

  if (SerialPortPoll ()) {
Count = SerialPortRead (Buffer, *BufferSize);
  }

  if (Count != *BufferSize) {
*BufferSize = Count;
return EFI_TIMEOUT;
  }

  return EFI_SUCCESS;
}



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


[edk2] [PATCH 5/7] IntelSiliconPkg/dsc: Add Vtd driver.

2017-07-18 Thread Jiewen Yao
Cc: Star Zeng 
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jiewen Yao 
---
 IntelSiliconPkg/IntelSiliconPkg.dsc | 31 
 1 file changed, 31 insertions(+)

diff --git a/IntelSiliconPkg/IntelSiliconPkg.dsc 
b/IntelSiliconPkg/IntelSiliconPkg.dsc
index f77f2a9..f2625cb 100644
--- a/IntelSiliconPkg/IntelSiliconPkg.dsc
+++ b/IntelSiliconPkg/IntelSiliconPkg.dsc
@@ -23,6 +23,32 @@
   BUILD_TARGETS  = DEBUG|RELEASE|NOOPT
   SKUID_IDENTIFIER   = DEFAULT
 
+[LibraryClasses]
+  BaseLib|MdePkg/Library/BaseLib/BaseLib.inf
+  BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf
+  PrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.inf
+  DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf
+  
DebugPrintErrorLevelLib|MdePkg/Library/BaseDebugPrintErrorLevelLib/BaseDebugPrintErrorLevelLib.inf
+  
ReportStatusCodeLib|MdePkg/Library/BaseReportStatusCodeLibNull/BaseReportStatusCodeLibNull.inf
+  PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
+  PciSegmentLib|MdePkg/Library/BasePciSegmentLibPci/BasePciSegmentLibPci.inf
+  PciLib|MdePkg/Library/BasePciLibCf8/BasePciLibCf8.inf
+  PciCf8Lib|MdePkg/Library/BasePciCf8Lib/BasePciCf8Lib.inf
+  IoLib|MdePkg/Library/BaseIoLibIntrinsic/BaseIoLibIntrinsic.inf
+  
UefiDecompressLib|MdePkg/Library/BaseUefiDecompressLib/BaseUefiDecompressLib.inf
+  
PerformanceLib|MdePkg/Library/BasePerformanceLibNull/BasePerformanceLibNull.inf
+  SerialPortLib|MdePkg/Library/BaseSerialPortLibNull/BaseSerialPortLibNull.inf
+
+[LibraryClasses.common.DXE_DRIVER]
+  
UefiDriverEntryPoint|MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf
+  
UefiBootServicesTableLib|MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf
+  
UefiRuntimeServicesTableLib|MdePkg/Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf
+  UefiLib|MdePkg/Library/UefiLib/UefiLib.inf
+  DevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf
+
+  HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf
+  
MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
+
 
###
 #
 # Components Section - list of the modules and components that will be 
processed by compilation
@@ -44,3 +70,8 @@
 
 [Components]
   IntelSiliconPkg/Library/DxeSmbiosDataHobLib/DxeSmbiosDataHobLib.inf
+  IntelSiliconPkg/IntelVTdDxe/IntelVTdDxe.inf
+
+[BuildOptions]
+  *_*_*_CC_FLAGS = -D DISABLE_NEW_DEPRECATED_INTERFACES
+
-- 
2.7.4.windows.1

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


[edk2] [PATCH 7/7] IntelSiliconPkg/dsc: Add PlatformVtd sample driver.

2017-07-18 Thread Jiewen Yao
Cc: Star Zeng 
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jiewen Yao 
---
 IntelSiliconPkg/IntelSiliconPkg.dsc | 1 +
 1 file changed, 1 insertion(+)

diff --git a/IntelSiliconPkg/IntelSiliconPkg.dsc 
b/IntelSiliconPkg/IntelSiliconPkg.dsc
index f2625cb..d837d84 100644
--- a/IntelSiliconPkg/IntelSiliconPkg.dsc
+++ b/IntelSiliconPkg/IntelSiliconPkg.dsc
@@ -71,6 +71,7 @@
 [Components]
   IntelSiliconPkg/Library/DxeSmbiosDataHobLib/DxeSmbiosDataHobLib.inf
   IntelSiliconPkg/IntelVTdDxe/IntelVTdDxe.inf
+  IntelSiliconPkg/PlatformVTdSampleDxe/PlatformVTdSampleDxe.inf
 
 [BuildOptions]
   *_*_*_CC_FLAGS = -D DISABLE_NEW_DEPRECATED_INTERFACES
-- 
2.7.4.windows.1

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


[edk2] [PATCH 6/7] IntelSiliconPkg: Add PlatformVTdSample driver.

2017-07-18 Thread Jiewen Yao
It provides sample on Platform VTd policy protocol.
This protocol is optional.

Cc: Star Zeng 
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jiewen Yao 
---
 IntelSiliconPkg/PlatformVTdSampleDxe/PlatformVTdSampleDxe.c| 339 

 IntelSiliconPkg/PlatformVTdSampleDxe/PlatformVTdSampleDxe.inf  |  59 
 IntelSiliconPkg/PlatformVTdSampleDxe/PlatformVTdSampleDxe.uni  |  20 ++
 IntelSiliconPkg/PlatformVTdSampleDxe/PlatformVTdSampleDxeExtra.uni |  20 ++
 4 files changed, 438 insertions(+)

diff --git a/IntelSiliconPkg/PlatformVTdSampleDxe/PlatformVTdSampleDxe.c 
b/IntelSiliconPkg/PlatformVTdSampleDxe/PlatformVTdSampleDxe.c
new file mode 100644
index 000..13b5feb
--- /dev/null
+++ b/IntelSiliconPkg/PlatformVTdSampleDxe/PlatformVTdSampleDxe.c
@@ -0,0 +1,339 @@
+/** @file
+  Platform VTd Sample driver.
+
+  Copyright (c) 2017, Intel Corporation. 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 
+
+#include 
+#include 
+#include 
+#include 
+
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+
+typedef struct {
+  ACPI_EXTENDED_HID_DEVICE_PATH  I2cController;
+  UINT8  HidStr[8];
+  UINT8  UidStr[1];
+  UINT8  CidStr[8];
+} PLATFORM_I2C_CONTROLLER_DEVICE_PATH;
+
+typedef struct {
+  ACPI_EXTENDED_HID_DEVICE_PATH  I2cDevice;
+  UINT8  HidStr[13];
+  UINT8  UidStr[1];
+  UINT8  CidStr[13];
+} PLATFORM_I2C_DEVICE_DEVICE_PATH;
+
+typedef struct {
+  PLATFORM_I2C_CONTROLLER_DEVICE_PATH  I2cController;
+  PLATFORM_I2C_DEVICE_DEVICE_PATH  I2cDevice;
+  EFI_DEVICE_PATH_PROTOCOL End;
+} PLATFORM_I2C_DEVICE_PATH;
+
+typedef struct {
+  ACPI_HID_DEVICE_PATH  PciRootBridge;
+  PCI_DEVICE_PATH   PciDevice;
+  EFI_DEVICE_PATH_PROTOCOL  EndDevicePath;
+} PLATFORM_PCI_DEVICE_PATH;
+
+typedef struct {
+  ACPI_HID_DEVICE_PATH  PciRootBridge;
+  PCI_DEVICE_PATH   PciBridge;
+  PCI_DEVICE_PATH   PciDevice;
+  EFI_DEVICE_PATH_PROTOCOL  EndDevicePath;
+} PLATFORM_PCI_BRIDGE_DEVICE_PATH;
+
+typedef struct {
+  EFI_DEVICE_PATH_PROTOCOL  *DevicePath;
+  UINT16Segment;
+  VTD_SOURCE_ID SourceId;
+} PLATFORM_ACPI_DEVICE_MAPPING;
+
+#define PLATFORM_PCI_ROOT_BRIDGE \
+  { \
+{ \
+  ACPI_DEVICE_PATH, \
+  ACPI_DP, \
+  { \
+(UINT8) (sizeof (ACPI_HID_DEVICE_PATH)), \
+(UINT8) ((sizeof (ACPI_HID_DEVICE_PATH)) >> 8) \
+  }, \
+}, \
+EISA_PNP_ID (0x0A03), \
+0 \
+  }
+
+#define PLATFORM_END_ENTIRE \
+  { \
+END_DEVICE_PATH_TYPE, END_ENTIRE_DEVICE_PATH_SUBTYPE, { 
END_DEVICE_PATH_LENGTH, 0 } \
+  }
+
+#define PLATFORM_PCI(Device, Function) \
+  { \
+{ \
+  HARDWARE_DEVICE_PATH, \
+  HW_PCI_DP, \
+  { \
+(UINT8) (sizeof (PCI_DEVICE_PATH)), \
+(UINT8) ((sizeof (PCI_DEVICE_PATH)) >> 8) \
+  } \
+}, \
+(Function), \
+(Device) \
+  }
+
+#define PLATFORM_I2C(Hid, Uid, Cid, HidStr, UidStr, CidStr) \
+  { \
+{ \
+  { \
+ACPI_DEVICE_PATH, \
+ACPI_EXTENDED_DP, \
+{sizeof(ACPI_EXTENDED_HID_DEVICE_PATH) + sizeof(HidStr) + 
sizeof(UidStr) + sizeof(CidStr), 0} \
+  }, \
+  Hid, \
+  Uid, \
+  Cid \
+}, \
+HidStr, \
+UidStr, \
+CidStr \
+  }
+
+PLATFORM_I2C_DEVICE_PATH mPlatformI2CDevicePath = {
+  PLATFORM_I2C(0, 2, 0, "INT33C3", "", "INT33C3"),
+  PLATFORM_I2C(0, 1, 0, "I2C01\\TPANEL", "", "I2C01\\TPANEL"),
+  PLATFORM_END_ENTIRE
+};
+
+PLATFORM_ACPI_DEVICE_MAPPING  mAcpiDeviceMapping[] = {
+  {
+(EFI_DEVICE_PATH_PROTOCOL *)&mPlatformI2CDevicePath,
+0x0, // Segment
+{{0x01, 0x15, 0x00}} // Function, Device, Bus
+  }
+};
+
+PLATFORM_PCI_BRIDGE_DEVICE_PATH mPlatformPciBridgeDevicePath = {
+  PLATFORM_PCI_ROOT_BRIDGE,
+  PLATFORM_PCI(0x1C, 1),
+  PLATFORM_PCI(0, 0),
+  PLATFORM_END_ENTIRE
+};
+
+EDKII_PLATFORM_VTD_DEVICE_INFO  mExceptionDeviceList[] = {
+  {
+0x0, // Segment
+{{0x00, 0x00, 0x02}} // Function, Device, Bus
+  },
+};
+
+/**
+  Compares 2 device path.
+
+  @param[in] DevicePath1  A device path with EndDevicePath node.
+  @param[in] DevicePath2  A device path with EndDevicePath node.
+
+  @retval TRUE   2 device path are identical.
+  @retval FALSE  2 device path are not identical.
+**/
+BOOLEAN
+CompareDevicePath (
+  IN CONST EFI_DEVICE_PATH_PROTOCOL  *DevicePath1,
+  IN CONST EF

[edk2] [PATCH 2/7] IntelSiliconPkg/Include: Add PlatformVtdPolicy Protocol

2017-07-18 Thread Jiewen Yao
Cc: Star Zeng 
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jiewen Yao 
---
 IntelSiliconPkg/Include/Protocol/PlatformVtdPolicy.h | 100 
 1 file changed, 100 insertions(+)

diff --git a/IntelSiliconPkg/Include/Protocol/PlatformVtdPolicy.h 
b/IntelSiliconPkg/Include/Protocol/PlatformVtdPolicy.h
new file mode 100644
index 000..1bd9365
--- /dev/null
+++ b/IntelSiliconPkg/Include/Protocol/PlatformVtdPolicy.h
@@ -0,0 +1,100 @@
+/** @file
+  The definition for platform VTD policy.
+
+  Copyright (c) 2017, Intel Corporation. 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 __PLATFORM_VTD_POLICY_PROTOCOL_H__
+#define __PLATFORM_VTD_POLICY_PROTOCOL_H__
+
+#include 
+
+#define EDKII_PLATFORM_VTD_POLICY_PROTOCOL_GUID \
+{ \
+  0x3d17e448, 0x466, 0x4e20, { 0x99, 0x9f, 0xb2, 0xe1, 0x34, 0x88, 0xee, 
0x22 } \
+}
+
+typedef struct _EDKII_PLATFORM_VTD_POLICY_PROTOCOL  
EDKII_PLATFORM_VTD_POLICY_PROTOCOL;
+
+#define EDKII_PLATFORM_VTD_POLICY_PROTOCOL_REVISION 0x0001
+
+typedef struct {
+  UINT16   Segment;
+  VTD_SOURCE_IDSourceId;
+} EDKII_PLATFORM_VTD_DEVICE_INFO;
+
+/**
+  Get the VTD SourceId from the device handler.
+  This function is required for non PCI device handler.
+
+  Pseudo-algo in Intel VTd driver:
+Status = PlatformGetVTdDeviceId ();
+if (EFI_ERROR(Status)) {
+  if (DeviceHandle is PCI) {
+Get SourceId from Bus/Device/Function
+  } else {
+return EFI_UNSUPPORTED
+  }
+}
+Get VTd engine by Segment/Bus/Device/Function.
+
+  @param[in]  This  The protocol instance pointer.
+  @param[in]  DeviceHandle  Device Identifier in UEFI.
+  @param[out] DeviceInfoDeviceInfo for indentify the VTd engine in 
ACPI Table
+and the VTd page entry.
+
+  @retval EFI_SUCCESS   The VtdIndex and SourceId are returned.
+  @retval EFI_INVALID_PARAMETER DeviceHandle is not a valid handler.
+  @retval EFI_INVALID_PARAMETER DeviceInfo is NULL.
+  @retval EFI_NOT_FOUND The Segment or SourceId information is NOT 
found.
+  @retval EFI_UNSUPPORTED   This function is not supported.
+
+**/
+typedef
+EFI_STATUS
+(EFIAPI *EDKII_PLATFORM_VTD_POLICY_GET_DEVICE_ID) (
+  IN  EDKII_PLATFORM_VTD_POLICY_PROTOCOL   *This,
+  IN  EFI_HANDLE   DeviceHandle,
+  OUT EDKII_PLATFORM_VTD_DEVICE_INFO   *DeviceInfo
+  );
+
+/**
+  Get a list of handles for the exception devices.
+
+  The VTd driver should always set ALLOW for the device in this list.
+
+  @param[in]  This  The protocol instance pointer.
+  @param[out] DeviceInfoCount   The count of the list of DeviceInfo.
+  @param[out] DeviceInfoA callee allocated buffer to hold a list 
of DeviceInfo.
+
+  @retval EFI_SUCCESS   The DeviceInfoCount and DeviceInfo are 
returned.
+  @retval EFI_INVALID_PARAMETER DeviceInfoCount is NULL, or DeviceInfo is NULL.
+  @retval EFI_UNSUPPORTED   This function is not supported.
+
+**/
+typedef
+EFI_STATUS
+(EFIAPI *EDKII_PLATFORM_VTD_POLICY_GET_EXCEPTION_DEVICE_LIST) (
+  IN  EDKII_PLATFORM_VTD_POLICY_PROTOCOL   *This,
+  OUT UINTN*DeviceInfoCount,
+  OUT EDKII_PLATFORM_VTD_DEVICE_INFO   **DeviceInfo
+  );
+
+struct _EDKII_PLATFORM_VTD_POLICY_PROTOCOL {
+  UINT64   Revision;
+  EDKII_PLATFORM_VTD_POLICY_GET_DEVICE_ID  GetDeviceId;
+  EDKII_PLATFORM_VTD_POLICY_GET_EXCEPTION_DEVICE_LIST  GetExceptionDeviceList;
+};
+
+extern EFI_GUID gEdkiiPlatformVTdPolicyProtocolGuid;
+
+#endif
+
-- 
2.7.4.windows.1

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


[edk2] [PATCH 0/7] Add VTd as IOMMU for UEFI.

2017-07-18 Thread Jiewen Yao
This series patch adds Intel VTd as IOMMU for UEFI BIOS.

It can also be found at https://github.com/jyao1/edk2/tree/vtd.

EDKII IOMMU protocol is already defined in MdeModulePkg.
This patch use VTd to implement IOMMU protocol.

A platform may use VTd to harden the system to prevent DMA attack
once the DMAR table is produced. The VTd engine will be disabled
at EndOfDxe event.

Test:
1) The patch is tested on Intel Kabylake platform and Intel Broadwell platform.
System boot to X64 UEFI Windows 10 successfully, with VTd engine enabled in 
BIOS.

2) We tested USB XHCI, ATA AHCI and Intel Graphic with DMA protection.

3) If we do not enable DMA access correctly in translation table, the DMA
access is blocked, and the device driver will return error.

More platform tests are on the way.


This series patch includes 1 protocol.
1) EDKII_PLATFORM_VTD_POLICY_PROTOCOL
This protocol is produced by a platform policy module and consumed
by the IntelVTdDxe driver.

1.1) GetDeviceId() API provides ACPI device information for VTd
source ID conversion.

1.2) GetExceptionDeviceList() API provides a list of exception devices.
We notice that a UEFI device driver might not follow UEFI spec to call PCI
map/unmap function for DMA request.

A platform may choose to unsupport the request from exception devices
or add workaround to support these exception device by returning the
device information by using GetExceptionDeviceList().

IntelVTD driver will consume this API to enable all memory access
for the exception device.


This series patch includes below 2 drivers.

1) IntelVTdDxe
It produces IOMMU Protocol and provide DMA protection.

It registers ACPI_SDT callback to check DMAR table.
Once the DMAR table is installed, IntelVTdDxe will enable VTd engine
to start protecting.

In order to use this feature, a platform MUST publish DMAR table
before any DMA transaction. Typically, it is at PciEnumDone protocol
callback.

If a platform does not have VTd support, or VTd is disabled,
the DMA protection will not be activated.

2) PlatformVTdSampleDxe
This is just a sample driver to show how to produce GetDeviceId()
or GetExceptionDeviceList() API.

It should NOT be included directly by any production.

If a platform need produce EDKII_PLATFORM_VTD_POLICY_PROTOCOL, it
should have its own driver.

Cc: Star Zeng 
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jiewen Yao 

Jiewen Yao (7):
  IntelSiliconPkg/Include: Add VTD industry standard.
  IntelSiliconPkg/Include: Add PlatformVtdPolicy Protocol
  IntelSiliconPkg/Dec: Add ProtocolGuid.
  IntelSiliconPkg: Add VTd driver.
  IntelSiliconPkg/dsc: Add Vtd driver.
  IntelSiliconPkg: Add PlatformVTdSample driver.
  IntelSiliconPkg/dsc: Add PlatformVtd sample driver.

 IntelSiliconPkg/Include/IndustryStandard/Vtd.h | 345 
+++
 IntelSiliconPkg/Include/Protocol/PlatformVtdPolicy.h   | 100 ++
 IntelSiliconPkg/IntelSiliconPkg.dec|   3 +
 IntelSiliconPkg/IntelSiliconPkg.dsc|  32 +
 IntelSiliconPkg/IntelVTdDxe/BmDma.c| 441 
+
 IntelSiliconPkg/IntelVTdDxe/DmaProtection.c| 367 
+++
 IntelSiliconPkg/IntelVTdDxe/DmaProtection.h| 501 
++
 IntelSiliconPkg/IntelVTdDxe/DmarAcpiTable.c| 998 

 IntelSiliconPkg/IntelVTdDxe/IntelVTdDxe.c  | 353 
+++
 IntelSiliconPkg/IntelVTdDxe/IntelVTdDxe.inf|  79 ++
 IntelSiliconPkg/IntelVTdDxe/IntelVTdDxe.uni|  20 +
 IntelSiliconPkg/IntelVTdDxe/IntelVTdDxeExtra.uni   |  20 +
 IntelSiliconPkg/IntelVTdDxe/PciInfo.c  | 315 ++
 IntelSiliconPkg/IntelVTdDxe/TranslationTable.c | 969 
+++
 IntelSiliconPkg/IntelVTdDxe/TranslationTableEx.c   | 153 +++
 IntelSiliconPkg/IntelVTdDxe/VtdReg.c   | 602 

 IntelSiliconPkg/PlatformVTdSampleDxe/PlatformVTdSampleDxe.c| 339 
+++
 IntelSiliconPkg/PlatformVTdSampleDxe/PlatformVTdSampleDxe.inf  |  59 ++
 IntelSiliconPkg/PlatformVTdSampleDxe/PlatformVTdSampleDxe.uni  |  20 +
 IntelSiliconPkg/PlatformVTdSampleDxe/PlatformVTdSampleDxeExtra.uni |  20 +
 20 files changed, 5736 insertions(+)
 create mode 100644 IntelSiliconPkg/Include/IndustryStandard/Vtd.h
 create mode 100644 IntelSiliconPkg/Include/Protocol/PlatformVtdPolicy.h
 create mode 100644 IntelSiliconPkg/IntelVTdDxe/BmDma.c
 create mode 100644 IntelSiliconPkg/IntelVTdDxe/DmaProtection.c
 create mode 100644 IntelSiliconPkg/IntelVTdDxe/DmaProtection.h
 create mode 100644 IntelSiliconPkg/IntelVTdDxe/DmarAcpiTable.c
 create mode 100644 IntelSiliconPkg/IntelVTdDxe/IntelVTdDxe.c
 create mode 100644 IntelSiliconPkg/IntelVTdDxe/IntelVTdDxe.inf
 create mode 100644 IntelSiliconPkg/IntelVTdDxe/IntelVTdDxe.uni
 

[edk2] [PATCH 1/7] IntelSiliconPkg/Include: Add VTD industry standard.

2017-07-18 Thread Jiewen Yao
Cc: Star Zeng 
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jiewen Yao 
---
 IntelSiliconPkg/Include/IndustryStandard/Vtd.h | 345 
 1 file changed, 345 insertions(+)

diff --git a/IntelSiliconPkg/Include/IndustryStandard/Vtd.h 
b/IntelSiliconPkg/Include/IndustryStandard/Vtd.h
new file mode 100644
index 000..573ff59
--- /dev/null
+++ b/IntelSiliconPkg/Include/IndustryStandard/Vtd.h
@@ -0,0 +1,345 @@
+/** @file
+  The definition for VTD register.
+  It is defined in "Intel VT for Direct IO Architecture Specification".
+
+  Copyright (c) 2017, Intel Corporation. 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 __VTD_REG_H__
+#define __VTD_REG_H__
+
+#pragma pack(1)
+
+//
+// Translation Structure Formats
+//
+#define VTD_ROOT_ENTRY_NUMBER   256
+#define VTD_CONTEXT_ENTRY_NUMBER256
+
+typedef union {
+  struct {
+UINT64  Present:1;
+UINT64  Reserved_1:11;
+UINT64  ContextTablePointer:52;
+
+UINT64  Reserved_64;
+  } Bits;
+  struct {
+UINT64  Uint64Lo;
+UINT64  Uint64Hi;
+  } Uint128;
+} VTD_ROOT_ENTRY;
+
+typedef union {
+  struct {
+UINT64  LowerPresent:1;
+UINT64  Reserved_1:11;
+UINT64  LowerContextTablePointer:52;
+
+UINT64  UpperPresent:1;
+UINT64  Reserved_65:11;
+UINT64  UpperContextTablePointer:52;
+  } Bits;
+  struct {
+UINT64  Uint64Lo;
+UINT64  Uint64Hi;
+  } Uint128;
+} VTD_EXT_ROOT_ENTRY;
+
+typedef union {
+  struct {
+UINT64  Present:1;
+UINT64  FaultProcessingDisable:1;
+UINT64  TranslationType:2;
+UINT64  Reserved_4:8;
+UINT64  SecondLevelPageTranslationPointer:52;
+
+UINT64  AddressWidth:3;
+UINT64  Ignored_67:4;
+UINT64  Reserved_71:1;
+UINT64  DomainIdentifier:16;
+UINT64  Reserved_88:40;
+  } Bits;
+  struct {
+UINT64  Uint64Lo;
+UINT64  Uint64Hi;
+  } Uint128;
+} VTD_CONTEXT_ENTRY;
+
+typedef union {
+  struct {
+UINT64  Present:1;
+UINT64  FaultProcessingDisable:1;
+UINT64  TranslationType:3;
+UINT64  ExtendedMemoryType:3;
+UINT64  DeferredInvalidateEnable:1;
+UINT64  PageRequestEnable:1;
+UINT64  NestedTranslationEnable:1;
+UINT64  PASIDEnable:1;
+UINT64  SecondLevelPageTranslationPointer:52;
+
+UINT64  AddressWidth:3;
+UINT64  PageGlobalEnable:1;
+UINT64  NoExecuteEnable:1;
+UINT64  WriteProtectEnable:1;
+UINT64  CacheDisable:1;
+UINT64  ExtendedMemoryTypeEnable:1;
+UINT64  DomainIdentifier:16;
+UINT64  SupervisorModeExecuteProtection:1;
+UINT64  ExtendedAccessedFlagEnable:1;
+UINT64  ExecuteRequestsEnable:1;
+UINT64  SecondLevelExecuteEnable:1;
+UINT64  Reserved_92:4;
+UINT64  PageAttributeTable0:3;
+UINT64  Reserved_Pat0:1;
+UINT64  PageAttributeTable1:3;
+UINT64  Reserved_Pat1:1;
+UINT64  PageAttributeTable2:3;
+UINT64  Reserved_Pat2:1;
+UINT64  PageAttributeTable3:3;
+UINT64  Reserved_Pat3:1;
+UINT64  PageAttributeTable4:3;
+UINT64  Reserved_Pat4:1;
+UINT64  PageAttributeTable5:3;
+UINT64  Reserved_Pat5:1;
+UINT64  PageAttributeTable6:3;
+UINT64  Reserved_Pat6:1;
+UINT64  PageAttributeTable7:3;
+UINT64  Reserved_Pat7:1;
+
+UINT64  PASIDTableSize:4;
+UINT64  Reserved_132:8;
+UINT64  PASIDTablePointer:52;
+
+UINT64  Reserved_192:12;
+UINT64  PASIDStateTablePointer:52;
+  } Bits;
+  struct {
+UINT64  Uint64_1;
+UINT64  Uint64_2;
+UINT64  Uint64_3;
+UINT64  Uint64_4;
+  } Uint256;
+} VTD_EXT_CONTEXT_ENTRY;
+
+typedef union {
+  struct {
+UINT64  Present:1;
+UINT64  Reserved_1:2;
+UINT64  PageLevelCacheDisable:1;
+UINT64  PageLevelWriteThrough:1;
+UINT64  Reserved_5:6;
+UINT64  SupervisorRequestsEnable:1;
+UINT64  FirstLevelPageTranslationPointer:52;
+  } Bits;
+  UINT64Uint64;
+} VTD_PASID_ENTRY;
+
+typedef union {
+  struct {
+UINT64  Reserved_0:32;
+UINT64  ActiveReferenceCount:16;
+UINT64  Reserved_48:15;
+UINT64  DeferredInvalidate:1;
+  } Bits;
+  UINT64Uint64;
+} VTD_PASID_STATE_ENTRY;
+
+typedef union {
+  struct {
+UINT64  Present:1;
+UINT64  ReadWrite:1;
+UINT64  UserSupervisor:1;
+UINT64  PageLevelWriteThrough:1;
+UINT64  PageLevelCacheDisable:1;
+UINT64  Accessed:1;
+UINT64  Dirty:1;
+UINT64  PageSize:1; // It is PageAttribute:1 for 4K page entry
+UINT64  Global:1;
+UINT64  Ignored_9:1;
+UINT64  ExtendedAccessed:1;
+UINT64  Ignored_11:1;
+// NOTE: There is PageAttribute:1 as bit12 for 1G page entry and 2M page 
entry
+

[edk2] [PATCH 3/7] IntelSiliconPkg/Dec: Add ProtocolGuid.

2017-07-18 Thread Jiewen Yao
Cc: Star Zeng 
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jiewen Yao 
---
 IntelSiliconPkg/IntelSiliconPkg.dec | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/IntelSiliconPkg/IntelSiliconPkg.dec 
b/IntelSiliconPkg/IntelSiliconPkg.dec
index 8819cb8..663a232 100644
--- a/IntelSiliconPkg/IntelSiliconPkg.dec
+++ b/IntelSiliconPkg/IntelSiliconPkg.dec
@@ -33,6 +33,9 @@
   # Generic DXE Library / Driver can locate HOB(s) and add SMBIOS records into 
SMBIOS table
   gIntelSmbiosDataHobGuid = { 0x798e722e, 0x15b2, 0x4e13, { 0x8a, 
0xe9, 0x6b, 0xa3, 0x0f, 0xf7, 0xf1, 0x67 }}
 
+[Protocols]
+  gEdkiiPlatformVTdPolicyProtocolGuid = { 0x3d17e448, 0x466, 0x4e20, { 0x99, 
0x9f, 0xb2, 0xe1, 0x34, 0x88, 0xee, 0x22 }}
+
 [PcdsFixedAtBuild, PcdsPatchableInModule, PcdsDynamic, PcdsDynamicEx]
   ## This is the GUID of the FFS which contains the Graphics Video BIOS Table 
(VBT)
   # The VBT content is stored as a RAW section which is consumed by GOP 
PEI/UEFI driver.
-- 
2.7.4.windows.1

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