]> git.proxmox.com Git - mirror_edk2.git/blobdiff - Readme.md
UefiCpuPkg/MpInitLib: Skip reading PlatformId on AMD processors.
[mirror_edk2.git] / Readme.md
index bf7c97cd2b7f93cb86cbb3e666cc7df458093e82..594f16b20756ab78987fef4feac2e439743d5b4a 100644 (file)
--- a/Readme.md
+++ b/Readme.md
@@ -3,19 +3,70 @@
 A modern, feature-rich, cross-platform firmware development environment\r
 for the UEFI and PI specifications from www.uefi.org.\r
 \r
-Contributions to the EDK II open source project are covered by the\r
-[TianoCore Contribution Agreement 1.1](Contributions.txt)\r
+# Build Status\r
+\r
+<table>\r
+  <tr>\r
+    <th>Host Type</th>\r
+    <th>Toolchain</th>\r
+    <th>Branch</th>\r
+    <th>Build Status</th>\r
+    <th>Test Status</th>\r
+    <th>Code Coverage</th>\r
+  </tr>\r
+  <tr>\r
+    <td>Windows</td>\r
+    <td>VS2019</td>\r
+    <td>master</td>\r
+    <td>\r
+      <a  href="https://dev.azure.com/tianocore/edk2-ci/_build/latest?definitionId=32&branchName=master">\r
+      <img src="https://dev.azure.com/tianocore/edk2-ci/_apis/build/status/Windows%20VS2019%20CI?branchName=master"/></a>\r
+    </td>\r
+    <td>\r
+      <a  href="https://dev.azure.com/tianocore/edk2-ci/_build/latest?definitionId=32&branchName=master">\r
+      <img src="https://img.shields.io/azure-devops/tests/tianocore/edk2-ci/32.svg"/></a>\r
+    </td>\r
+    <td>\r
+      <a  href="https://dev.azure.com/tianocore/edk2-ci/_build/latest?definitionId=32&branchName=master">\r
+      <img src="https://img.shields.io/badge/coverage-coming_soon-blue"/></a>\r
+    </td>\r
+  </tr>\r
+  <tr>\r
+    <td>Ubuntu</td>\r
+    <td>GCC</td>\r
+    <td>master</td>\r
+    <td>\r
+      <a  href="https://dev.azure.com/tianocore/edk2-ci/_build/latest?definitionId=31&branchName=master">\r
+      <img src="https://dev.azure.com/tianocore/edk2-ci/_apis/build/status/Ubuntu%20GCC5%20CI?branchName=master"/></a>\r
+    </td>\r
+    <td>\r
+      <a  href="https://dev.azure.com/tianocore/edk2-ci/_build/latest?definitionId=31&branchName=master">\r
+      <img src="https://img.shields.io/azure-devops/tests/tianocore/edk2-ci/31.svg"/></a>\r
+    </td>\r
+    <td>\r
+      <a  href="https://dev.azure.com/tianocore/edk2-ci/_build/latest?definitionId=31&branchName=master">\r
+      <img src="https://img.shields.io/badge/coverage-coming_soon-blue"/></a>\r
+    </td>\r
+  </tr>\r
+</table>\r
+\r
+[More CI Build information](.pytool/Readme.md)\r
+\r
+# License Details\r
 \r
 The majority of the content in the EDK II open source project uses a\r
-[BSD 2-Clause License](License.txt).  The EDK II open source project contains\r
-the following components that are covered by additional licenses:\r
-* [AppPkg/Applications/Python/Python-2.7.2/Tools/pybench](AppPkg/Applications/Python/Python-2.7.2/Tools/pybench/LICENSE)\r
-* [AppPkg/Applications/Python/Python-2.7.2](AppPkg/Applications/Python/Python-2.7.2/LICENSE)\r
-* [AppPkg/Applications/Python/Python-2.7.10](AppPkg/Applications/Python/Python-2.7.10/LICENSE)\r
+[BSD-2-Clause Plus Patent License](License.txt).  The EDK II open source project\r
+contains the following components that are covered by additional licenses:\r
 * [BaseTools/Source/C/BrotliCompress](BaseTools/Source/C/BrotliCompress/LICENSE)\r
 * [MdeModulePkg/Library/BrotliCustomDecompressLib](MdeModulePkg/Library/BrotliCustomDecompressLib/LICENSE)\r
+* [BaseTools/Source/C/LzmaCompress](BaseTools/Source/C/LzmaCompress/LZMA-SDK-README.txt)\r
+* [MdeModulePkg/Library/LzmaCustomDecompressLib](MdeModulePkg/Library/LzmaCustomDecompressLib/LZMA-SDK-README.txt)\r
+* [IntelFrameworkModulePkg/Library/LzmaCustomDecompressLib/Sdk](IntelFrameworkModulePkg/Library/LzmaCustomDecompressLib/LZMA-SDK-README.txt)\r
+* [BaseTools/Source/C/VfrCompile/Pccts](BaseTools/Source/C/VfrCompile/Pccts/RIGHTS)\r
+* [MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma](MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/README)\r
 * [OvmfPkg](OvmfPkg/License.txt)\r
-* [CryptoPkg/Library/OpensslLib/openssl](CryptoPkg/Library/OpensslLib/openssl/LICENSE)\r
+* [CryptoPkg/Library/OpensslLib/openssl](https://github.com/openssl/openssl/blob/50eaac9f3337667259de725451f201e784599687/LICENSE)\r
+* [ArmPkg/Library/ArmSoftFloatLib/berkeley-softfloat-3](https://github.com/ucb-bar/berkeley-softfloat-3/blob/b64af41c3276f97f0e181920400ee056b9c88037/COPYING.txt)\r
 \r
 The EDK II Project is composed of packages.  The maintainers for each package\r
 are listed in [Maintainers.txt](Maintainers.txt).\r
@@ -28,6 +79,154 @@ are listed in [Maintainers.txt](Maintainers.txt).
 * [TianoCore Bugzilla](https://bugzilla.tianocore.org)\r
 * [How To Contribute](https://github.com/tianocore/tianocore.github.io/wiki/How-To-Contribute)\r
 * [Release Planning](https://github.com/tianocore/tianocore.github.io/wiki/EDK-II-Release-Planning)\r
-* [UDK2017](https://github.com/tianocore/edk2/releases/tag/vUDK2017)\r
-* [UDK2018](https://github.com/tianocore/edk2/releases/tag/vUDK2018)\r
-* [edk2-stable201811](https://github.com/tianocore/edk2/releases/tag/edk2-stable201811)\r
+\r
+# Code Contributions\r
+To make a contribution to a TianoCore project, follow these steps.\r
+1. Create a change description in the format specified below to\r
+   use in the source control commit log.\r
+2. Your commit message must include your `Signed-off-by` signature\r
+3. Submit your code to the TianoCore project using the process\r
+   that the project documents on its web page.  If the process is\r
+   not documented, then submit the code on development email list\r
+   for the project.\r
+4. It is preferred that contributions are submitted using the same\r
+   copyright license as the base project. When that is not possible,\r
+   then contributions using the following licenses can be accepted:\r
+   * BSD (2-clause): http://opensource.org/licenses/BSD-2-Clause\r
+   * BSD (3-clause): http://opensource.org/licenses/BSD-3-Clause\r
+   * MIT: http://opensource.org/licenses/MIT\r
+   * Python-2.0: http://opensource.org/licenses/Python-2.0\r
+   * Zlib: http://opensource.org/licenses/Zlib\r
+\r
+   For documentation:\r
+   * FreeBSD Documentation License\r
+     https://www.freebsd.org/copyright/freebsd-doc-license.html\r
+\r
+   Contributions of code put into the public domain can also be\r
+   accepted.\r
+\r
+   Contributions using other licenses might be accepted, but further\r
+   review will be required.\r
+\r
+# Developer Certificate of Origin\r
+\r
+Your change description should use the standard format for a\r
+commit message, and must include your `Signed-off-by` signature.\r
+\r
+In order to keep track of who did what, all patches contributed must\r
+include a statement that to the best of the contributor's knowledge\r
+they have the right to contribute it under the specified license.\r
+\r
+The test for this is as specified in the [Developer's Certificate of\r
+Origin (DCO) 1.1](https://developercertificate.org/). The contributor\r
+certifies compliance by adding a line saying\r
+\r
+  Signed-off-by: Developer Name <developer@example.org>\r
+\r
+where `Developer Name` is the contributor's real name, and the email\r
+address is one the developer is reachable through at the time of\r
+contributing.\r
+\r
+```\r
+Developer's Certificate of Origin 1.1\r
+\r
+By making a contribution to this project, I certify that:\r
+\r
+(a) The contribution was created in whole or in part by me and I\r
+    have the right to submit it under the open source license\r
+    indicated in the file; or\r
+\r
+(b) The contribution is based upon previous work that, to the best\r
+    of my knowledge, is covered under an appropriate open source\r
+    license and I have the right under that license to submit that\r
+    work with modifications, whether created in whole or in part\r
+    by me, under the same open source license (unless I am\r
+    permitted to submit under a different license), as indicated\r
+    in the file; or\r
+\r
+(c) The contribution was provided directly to me by some other\r
+    person who certified (a), (b) or (c) and I have not modified\r
+    it.\r
+\r
+(d) I understand and agree that this project and the contribution\r
+    are public and that a record of the contribution (including all\r
+    personal information I submit with it, including my sign-off) is\r
+    maintained indefinitely and may be redistributed consistent with\r
+    this project or the open source license(s) involved.\r
+```\r
+\r
+# Sample Change Description / Commit Message\r
+\r
+```\r
+From: Contributor Name <contributor@example.com>\r
+Subject: [Repository/Branch PATCH] Pkg-Module: Brief-single-line-summary\r
+\r
+Full-commit-message\r
+\r
+Signed-off-by: Contributor Name <contributor@example.com>\r
+```\r
+\r
+## Notes for sample patch email\r
+\r
+* The first line of commit message is taken from the email's subject\r
+  line following `[Repository/Branch PATCH]`. The remaining portion of the\r
+  commit message is the email's content.\r
+* `git format-patch` is one way to create this format\r
+\r
+## Definitions for sample patch email\r
+\r
+* `Repository` is the identifier of the repository the patch applies.\r
+  This identifier should only be provided for repositories other than\r
+  `edk2`. For example `edk2-BuildSpecification` or `staging`.\r
+* `Branch` is the identifier of the branch the patch applies. This\r
+  identifier should only be provided for branches other than `edk2/master`.\r
+  For example `edk2/UDK2015`, `edk2-BuildSpecification/release/1.27`, or\r
+  `staging/edk2-test`.\r
+* `Module` is a short identifier for the affected code or documentation. For\r
+  example `MdePkg`, `MdeModulePkg/UsbBusDxe`, `Introduction`, or\r
+  `EDK II INF File Format`.\r
+* `Brief-single-line-summary` is a short summary of the change.\r
+* The entire first line should be less than ~70 characters.\r
+* `Full-commit-message` a verbose multiple line comment describing\r
+  the change.  Each line should be less than ~70 characters.\r
+* `Signed-off-by` is the contributor's signature identifying them\r
+  by their real/legal name and their email address.\r
+\r
+# Submodules\r
+\r
+Submodule in EDK II is allowed but submodule chain should be avoided\r
+as possible as we can. Currently EDK II contains the following submodules\r
+\r
+- CryptoPkg/Library/OpensslLib/openssl\r
+- ArmPkg/Library/ArmSoftFloatLib/berkeley-softfloat-3\r
+\r
+ArmSoftFloatLib is actually required by OpensslLib. It's inevitable\r
+in openssl-1.1.1 (since stable201905) for floating point parameter\r
+conversion, but should be dropped once there's no such need in future\r
+release of openssl.\r
+\r
+To get a full, buildable EDK II repository, use following steps of git\r
+command\r
+\r
+```\r
+$ git clone https://github.com/tianocore/edk2.git\r
+$ cd edk2\r
+$ git submodule update --init\r
+$ cd ..\r
+```\r
+\r
+If there's update for submodules, use following git commands to get the\r
+latest submodules code.\r
+\r
+```\r
+$ cd edk2\r
+$ git pull\r
+$ git submodule update\r
+```\r
+\r
+Note: When cloning submodule repos, '--recursive' option is not\r
+recommended. EDK II itself will not use any code/feature from\r
+submodules in above submodules. So using '--recursive' adds a\r
+dependency on being able to reach servers we do not actually want\r
+any code from, as well as needlessly downloading code we will not\r
+use.\r