]> git.proxmox.com Git - mirror_edk2.git/blame - ReadMe.rst
DynamicTablesPkg: Add EDK2 Core CI support
[mirror_edk2.git] / ReadMe.rst
CommitLineData
64ab457d
SB
1==============\r
2EDK II Project\r
3==============\r
4\r
5A modern, feature-rich, cross-platform firmware development\r
6environment for the UEFI and PI specifications from www.uefi.org.\r
7\r
8Core CI Build Status\r
9--------------------\r
10\r
11============================= ================= =============== ===================\r
12 Host Type & Toolchain Build Status Test Status Code Coverage\r
13============================= ================= =============== ===================\r
14Windows_VS2019_ |WindowsCiBuild| |WindowsCiTest| |WindowsCiCoverage|\r
15Ubuntu_GCC5_ |UbuntuCiBuild| |UbuntuCiTest| |UbuntuCiCoverage|\r
16============================= ================= =============== ===================\r
17\r
18`More CI Build information <.pytool/Readme.md>`__\r
19\r
20Platform CI Build Status\r
21------------------------\r
22\r
23Microsoft Windows VS2019\r
24````````````````````````\r
25\r
26============================= ================= ============= ============= ==============\r
27 Toolchain CONFIG DEBUG RELEASE NOOPT\r
28============================= ================= ============= ============= ==============\r
29EmulatorPkg_Win_VS2019_ | IA32 |em32d| |em32r| |em32n|\r
30| | X64 |em64d| |em64r| |em64n|\r
31OvmfPkg_Win_VS2019_ | IA32 |op32d| |op32r| |op32n|\r
32| | X64 |op64d| |op64r| |op64n|\r
33| | IA32 X64 |op3264d| |op3264r| |op3264n|\r
34| | IA32 X64 FULL |op3264fd| |op3264fr| |op3264fn|\r
35============================= ================= ============= ============= ==============\r
36\r
37Ubuntu 18.04 GCC5\r
38`````````````````\r
39\r
40============================= ================= ============= ============= ==============\r
41 Toolchain CONFIG DEBUG RELEASE NOOPT\r
42============================= ================= ============= ============= ==============\r
43ArmVirtPkg_Ubuntu_GCC5_ | AARCH64 |avAArch64du| |avAArch64ru| |avAArch64nu|\r
44| | ARM |avArmdu| |avArmru| |avArmnu|\r
45EmulatorPkg_Ubuntu_GCC5_ | IA32 |em32du| |em32ru| |em32nu|\r
46| | X64 |em64du| |em64ru| |em64nu|\r
47OvmfPkg_Ubuntu_GCC5_ | IA32 |op32du| |op32ru| |op32nu|\r
48| | X64 |op64du| |op64ru| |op64nu|\r
49| | IA32 X64 |op3264du| |op3264ru| |op3264nu|\r
50| | IA32 X64 FULL |op3264fdu| |op3264fru| |op3264fru|\r
51============================= ================= ============= ============= ==============\r
52\r
53|TCBZ_2668|_ - EmulatorPkg Ubuntu GCC5 Segfaults during execution.\r
54\r
55|TCBZ_2639|_ - EmulatorPkg Ubuntu GCC5 Segfaults during execution.\r
56\r
57`More ArmVirtPkg CI Build Information <ArmVirtPkg/PlatformCI/ReadMe.md>`__\r
58\r
59`More EmulatorPkg CI Build Information <EmulatorPkg/PlatformCI/ReadMe.md>`__\r
60\r
61`More OvmfPkg CI Build Information <OvmfPkg/PlatformCI/ReadMe.md>`__\r
62\r
63\r
64License Details\r
65---------------\r
66\r
67The majority of the content in the EDK II open source project uses a\r
68`BSD-2-Clause Plus Patent License <License.txt>`__. The EDK II open\r
69source project contains the following components that are covered by additional\r
70licenses:\r
71\r
64ab457d 72- `BaseTools/Source/C/LzmaCompress <BaseTools/Source/C/LzmaCompress/LZMA-SDK-README.txt>`__\r
64ab457d 73- `BaseTools/Source/C/VfrCompile/Pccts <BaseTools/Source/C/VfrCompile/Pccts/RIGHTS>`__\r
dcf51c05
MK
74- `CryptoPkg\Library\BaseCryptLib\SysCall\inet_pton.c <CryptoPkg\Library\BaseCryptLib\SysCall\inet_pton.c>`__\r
75- `CryptoPkg\Library\Include\crypto\dso_conf.h <https://github.com/openssl/openssl/blob/e2e09d9fba1187f8d6aafaa34d4172f56f1ffb72/LICENSE>`__\r
76- `CryptoPkg\Library\Include\openssl\opensslconf.h <https://github.com/openssl/openssl/blob/e2e09d9fba1187f8d6aafaa34d4172f56f1ffb72/LICENSE>`__\r
77- `EmbeddedPkg/Library/FdtLib <EmbeddedPkg/Library/FdtLib/fdt.c>`__. (EDK II uses BSD License)\r
78- `EmbeddedPkg/Include/fdt.h <EmbeddedPkg/Include/fdt.h>`__. (EDK II uses BSD Licence)\r
79- `EmbeddedPkg/Include/libfdt.h <EmbeddedPkg/Include/libfdt.h>`__. (EDK II uses BSD License)\r
80- `MdeModulePkg/Library/LzmaCustomDecompressLib <MdeModulePkg/Library/LzmaCustomDecompressLib/LZMA-SDK-README.txt>`__\r
64ab457d 81- `OvmfPkg <OvmfPkg/License.txt>`__\r
dcf51c05
MK
82\r
83The EDK II open source project uses content from upstream projects as git submodules\r
84that are covered by additional licenses.\r
85\r
64ab457d 86- `ArmPkg/Library/ArmSoftFloatLib/berkeley-softfloat-3 <https://github.com/ucb-bar/berkeley-softfloat-3/blob/b64af41c3276f97f0e181920400ee056b9c88037/COPYING.txt>`__\r
dcf51c05
MK
87- `BaseTools/Source/C/BrotliCompress/brotli <https://github.com/google/brotli/blob/666c3280cc11dc433c303d79a83d4ffbdd12cc8d/LICENSE>`__\r
88- `CryptoPkg/Library/OpensslLib/openssl <https://github.com/openssl/openssl/blob/e2e09d9fba1187f8d6aafaa34d4172f56f1ffb72/LICENSE>`__\r
89- `MdeModulePkg/Library/BrotliCustomDecompressLib/brotli <https://github.com/google/brotli/blob/666c3280cc11dc433c303d79a83d4ffbdd12cc8d/LICENSE>`__\r
90- `MdeModulePkg/Universal/RegularExpressionDxe/oniguruma <https://github.com/kkos/oniguruma/blob/abfc8ff81df4067f309032467785e06975678f0d/COPYING>`__\r
91- `UnitTestFrameworkPkg/Library/CmockaLib/cmocka <https://git.cryptomilk.org/projects/cmocka.git/tree/COPYING?h=cmocka-1.1.5&id=f5e2cd77c88d9f792562888d2b70c5a396bfbf7a>`__\r
64ab457d
SB
92\r
93The EDK II Project is composed of packages. The maintainers for each package\r
94are listed in `Maintainers.txt <Maintainers.txt>`__.\r
95\r
96Resources\r
97---------\r
98\r
99- `TianoCore <http://www.tianocore.org>`__\r
100- `EDK\r
101 II <https://github.com/tianocore/tianocore.github.io/wiki/EDK-II>`__\r
102- `Getting Started with EDK\r
103 II <https://github.com/tianocore/tianocore.github.io/wiki/Getting-Started-with-EDK-II>`__\r
104- `Mailing\r
105 Lists <https://github.com/tianocore/tianocore.github.io/wiki/Mailing-Lists>`__\r
106- `TianoCore Bugzilla <https://bugzilla.tianocore.org>`__\r
107- `How To\r
108 Contribute <https://github.com/tianocore/tianocore.github.io/wiki/How-To-Contribute>`__\r
109- `Release\r
110 Planning <https://github.com/tianocore/tianocore.github.io/wiki/EDK-II-Release-Planning>`__\r
111\r
112Code Contributions\r
113------------------\r
114\r
115To make a contribution to a TianoCore project, follow these steps.\r
116\r
117#. Create a change description in the format specified below to\r
118 use in the source control commit log.\r
119#. Your commit message must include your ``Signed-off-by`` signature\r
120#. Submit your code to the TianoCore project using the process\r
121 that the project documents on its web page. If the process is\r
122 not documented, then submit the code on development email list\r
123 for the project.\r
124#. It is preferred that contributions are submitted using the same\r
125 copyright license as the base project. When that is not possible,\r
126 then contributions using the following licenses can be accepted:\r
127\r
128- BSD (2-clause): http://opensource.org/licenses/BSD-2-Clause\r
129- BSD (3-clause): http://opensource.org/licenses/BSD-3-Clause\r
130- MIT: http://opensource.org/licenses/MIT\r
131- Python-2.0: http://opensource.org/licenses/Python-2.0\r
132- Zlib: http://opensource.org/licenses/Zlib\r
133\r
134For documentation:\r
135\r
136- FreeBSD Documentation License\r
137 https://www.freebsd.org/copyright/freebsd-doc-license.html\r
138\r
139Contributions of code put into the public domain can also be accepted.\r
140\r
141Contributions using other licenses might be accepted, but further\r
142review will be required.\r
143\r
144Developer Certificate of Origin\r
145-------------------------------\r
146\r
147Your change description should use the standard format for a\r
148commit message, and must include your ``Signed-off-by`` signature.\r
149\r
150In order to keep track of who did what, all patches contributed must\r
151include a statement that to the best of the contributor's knowledge\r
152they have the right to contribute it under the specified license.\r
153\r
154The test for this is as specified in the `Developer's Certificate of\r
155Origin (DCO) 1.1 <https://developercertificate.org/>`__. The contributor\r
156certifies compliance by adding a line saying\r
157\r
158Signed-off-by: Developer Name developer@example.org\r
159\r
160where ``Developer Name`` is the contributor's real name, and the email\r
161address is one the developer is reachable through at the time of\r
162contributing.\r
163\r
164::\r
165\r
166 Developer's Certificate of Origin 1.1\r
167\r
168 By making a contribution to this project, I certify that:\r
169\r
170 (a) The contribution was created in whole or in part by me and I\r
171 have the right to submit it under the open source license\r
172 indicated in the file; or\r
173\r
174 (b) The contribution is based upon previous work that, to the best\r
175 of my knowledge, is covered under an appropriate open source\r
176 license and I have the right under that license to submit that\r
177 work with modifications, whether created in whole or in part\r
178 by me, under the same open source license (unless I am\r
179 permitted to submit under a different license), as indicated\r
180 in the file; or\r
181\r
182 (c) The contribution was provided directly to me by some other\r
183 person who certified (a), (b) or (c) and I have not modified\r
184 it.\r
185\r
186 (d) I understand and agree that this project and the contribution\r
187 are public and that a record of the contribution (including all\r
188 personal information I submit with it, including my sign-off) is\r
189 maintained indefinitely and may be redistributed consistent with\r
190 this project or the open source license(s) involved.\r
191\r
192Sample Change Description / Commit Message\r
193------------------------------------------\r
194\r
195::\r
196\r
197 From: Contributor Name <contributor@example.com>\r
198 Subject: [Repository/Branch PATCH] Pkg-Module: Brief-single-line-summary\r
199\r
200 Full-commit-message\r
201\r
202 Signed-off-by: Contributor Name <contributor@example.com>\r
203\r
204Notes for sample patch email\r
205````````````````````````````\r
206\r
207- The first line of commit message is taken from the email's subject\r
208 line following ``[Repository/Branch PATCH]``. The remaining portion\r
209 of the commit message is the email's content.\r
210- ``git format-patch`` is one way to create this format\r
211\r
212Definitions for sample patch email\r
213``````````````````````````````````\r
214\r
215- ``Repository`` is the identifier of the repository the patch applies.\r
216 This identifier should only be provided for repositories other than\r
217 ``edk2``. For example ``edk2-BuildSpecification`` or ``staging``.\r
218- ``Branch`` is the identifier of the branch the patch applies. This\r
219 identifier should only be provided for branches other than\r
220 ``edk2/master``.\r
221 For example ``edk2/UDK2015``,\r
222 ``edk2-BuildSpecification/release/1.27``, or\r
223 ``staging/edk2-test``.\r
224- ``Module`` is a short identifier for the affected code or\r
225 documentation. For example ``MdePkg``, ``MdeModulePkg/UsbBusDxe``, ``Introduction``, or\r
226 ``EDK II INF File Format``.\r
227- ``Brief-single-line-summary`` is a short summary of the change.\r
228- The entire first line should be less than ~70 characters.\r
229- ``Full-commit-message`` a verbose multiple line comment describing\r
230 the change. Each line should be less than ~70 characters.\r
231- ``Signed-off-by`` is the contributor's signature identifying them\r
232 by their real/legal name and their email address.\r
233\r
234Submodules\r
235----------\r
236\r
237Submodule in EDK II is allowed but submodule chain should be avoided\r
238as possible as we can. Currently EDK II contains the following submodules\r
239\r
240- CryptoPkg/Library/OpensslLib/openssl\r
241- ArmPkg/Library/ArmSoftFloatLib/berkeley-softfloat-3\r
242- MdeModulePkg/Universal/RegularExpressionDxe/oniguruma\r
243- MdeModulePkg/Library/BrotliCustomDecompressLib/brotli\r
244- BaseTools/Source/C/BrotliCompress/brotli\r
245\r
246ArmSoftFloatLib is actually required by OpensslLib. It's inevitable\r
247in openssl-1.1.1 (since stable201905) for floating point parameter\r
248conversion, but should be dropped once there's no such need in future\r
249release of openssl.\r
250\r
251To get a full, buildable EDK II repository, use following steps of git\r
252command\r
253\r
254.. code-block:: bash\r
255\r
256 git clone https://github.com/tianocore/edk2.git\r
257 cd edk2\r
258 git submodule update --init\r
259 cd ..\r
260\r
261If there's update for submodules, use following git commands to get\r
262the latest submodules code.\r
263\r
264.. code-block:: bash\r
265\r
266 cd edk2\r
267 git pull\r
268 git submodule update\r
269\r
270Note: When cloning submodule repos, '--recursive' option is not\r
271recommended. EDK II itself will not use any code/feature from\r
272submodules in above submodules. So using '--recursive' adds a\r
273dependency on being able to reach servers we do not actually want\r
274any code from, as well as needlessly downloading code we will not\r
275use.\r
276\r
277.. ===================================================================\r
278.. This is a bunch of directives to make the README file more readable\r
279.. ===================================================================\r
280\r
281.. CoreCI\r
282\r
283.. _Windows_VS2019: https://dev.azure.com/tianocore/edk2-ci/_build/latest?definitionId=32&branchName=master\r
284.. |WindowsCiBuild| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status/Windows%20VS2019%20CI?branchName=master\r
285.. |WindowsCiTest| image:: https://img.shields.io/azure-devops/tests/tianocore/edk2-ci/32.svg\r
286.. |WindowsCiCoverage| image:: https://img.shields.io/badge/coverage-coming_soon-blue\r
287\r
288.. _Ubuntu_GCC5: https://dev.azure.com/tianocore/edk2-ci/_build/latest?definitionId=31&branchName=master\r
289.. |UbuntuCiBuild| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status/Ubuntu%20GCC5%20CI?branchName=master\r
290.. |UbuntuCiTest| image:: https://img.shields.io/azure-devops/tests/tianocore/edk2-ci/31.svg\r
291.. |UbuntuCiCoverage| image:: https://img.shields.io/badge/coverage-coming_soon-blue\r
292\r
293.. ArmVirtPkg\r
294\r
295.. _ArmVirtPkg_Ubuntu_GCC5: https://dev.azure.com/tianocore/edk2-ci/_build/latest?definitionId=46&branchName=master\r
296.. |avAArch64du| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status/PlatformCI_ArmVirtPkg_Ubuntu_GCC5_CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20QEMU_AARCH64_DEBUG\r
297.. |avAArch64ru| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status/PlatformCI_ArmVirtPkg_Ubuntu_GCC5_CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20QEMU_AARCH64_RELEASE\r
298.. |avAArch64nu| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status/PlatformCI_ArmVirtPkg_Ubuntu_GCC5_CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20QEMU_AARCH64_NOOPT\r
299\r
300.. |avArmdu| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status/PlatformCI_ArmVirtPkg_Ubuntu_GCC5_CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20QEMU_ARM_DEBUG\r
301.. |avArmru| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status/PlatformCI_ArmVirtPkg_Ubuntu_GCC5_CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20QEMU_ARM_RELEASE\r
302.. |avArmnu| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status/PlatformCI_ArmVirtPkg_Ubuntu_GCC5_CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20QEMU_ARM_NOOPT\r
303\r
304.. EmulatorPkg\r
305\r
306.. |TCBZ_2668| image:: https://img.shields.io/bugzilla/2668?baseUrl=https%3A%2F%2Fbugzilla.tianocore.org\r
307.. _TCBZ_2668: https://bugzilla.tianocore.org/show_bug.cgi?id=2668\r
308\r
309.. |TCBZ_2639| image:: https://img.shields.io/bugzilla/2639?baseUrl=https%3A%2F%2Fbugzilla.tianocore.org\r
310.. _TCBZ_2639: https://bugzilla.tianocore.org/show_bug.cgi?id=2639\r
311\r
312.. _EmulatorPkg_Win_VS2019: https://dev.azure.com/tianocore/edk2-ci/_build/latest?definitionId=44&branchName=master\r
313.. _EmulatorPkg_Ubuntu_GCC5: https://dev.azure.com/tianocore/edk2-ci/_build/latest?definitionId=43&branchName=master\r
314\r
315.. |em32d| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status/PlatformCI_EmulatorPkg_Windows_VS2019_CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20EmulatorPkg_IA32_DEBUG\r
316.. |em32du| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status/PlatformCI_EmulatorPkg_Ubuntu_GCC5_CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20EmulatorPkg_IA32_DEBUG\r
317.. |em32r| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status/PlatformCI_EmulatorPkg_Windows_VS2019_CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20EmulatorPkg_IA32_RELEASE\r
318.. |em32ru| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status/PlatformCI_EmulatorPkg_Ubuntu_GCC5_CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20EmulatorPkg_IA32_RELEASE\r
319.. |em32n| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status/PlatformCI_EmulatorPkg_Windows_VS2019_CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20EmulatorPkg_IA32_NOOPT\r
320.. |em32nu| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status/PlatformCI_EmulatorPkg_Ubuntu_GCC5_CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20EmulatorPkg_IA32_NOOPT\r
321\r
322.. |em64d| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status/PlatformCI_EmulatorPkg_Windows_VS2019_CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20EmulatorPkg_X64_DEBUG\r
323.. |em64du| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status/PlatformCI_EmulatorPkg_Ubuntu_GCC5_CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20EmulatorPkg_X64_DEBUG\r
324.. |em64r| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status/PlatformCI_EmulatorPkg_Windows_VS2019_CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20EmulatorPkg_X64_RELEASE\r
325.. |em64ru| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status/PlatformCI_EmulatorPkg_Ubuntu_GCC5_CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20EmulatorPkg_X64_RELEASE\r
326.. |em64n| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status/PlatformCI_EmulatorPkg_Windows_VS2019_CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20EmulatorPkg_X64_NOOPT\r
327.. |em64nu| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status/PlatformCI_EmulatorPkg_Ubuntu_GCC5_CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20EmulatorPkg_X64_NOOPT\r
328\r
329.. OvmfPkg\r
330\r
331.. |TCBZ_2661| image:: https://img.shields.io/bugzilla/2661?baseUrl=https%3A%2F%2Fbugzilla.tianocore.org\r
332.. _TCBZ_2661: https://bugzilla.tianocore.org/show_bug.cgi?id=2661\r
333\r
334.. _OvmfPkg_Win_VS2019: https://dev.azure.com/tianocore/edk2-ci/_build/latest?definitionId=50&branchName=master\r
335.. _OvmfPkg_Ubuntu_GCC5: https://dev.azure.com/tianocore/edk2-ci/_build/latest?definitionId=48&branchName=master\r
336\r
337.. |op32d| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status/PlatformCI_OvmfPkg_Windows_VS2019_CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20OVMF_IA32_DEBUG\r
338.. |op32du| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status/PlatformCI_OvmfPkg_Ubuntu_GCC5_CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20OVMF_IA32_DEBUG\r
339.. |op32r| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status/PlatformCI_OvmfPkg_Windows_VS2019_CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20OVMF_IA32_RELEASE\r
340.. |op32ru| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status/PlatformCI_OvmfPkg_Ubuntu_GCC5_CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20OVMF_IA32_RELEASE\r
341.. |op32n| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status/PlatformCI_OvmfPkg_Windows_VS2019_CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20OVMF_IA32_NOOPT\r
342.. |op32nu| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status/PlatformCI_OvmfPkg_Ubuntu_GCC5_CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20OVMF_IA32_NOOPT\r
343\r
344.. |op64d| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status/PlatformCI_OvmfPkg_Windows_VS2019_CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20OVMF_X64_DEBUG\r
345.. |op64du| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status/PlatformCI_OvmfPkg_Ubuntu_GCC5_CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20OVMF_X64_DEBUG\r
346.. |op64r| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status/PlatformCI_OvmfPkg_Windows_VS2019_CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20OVMF_X64_RELEASE\r
347.. |op64ru| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status/PlatformCI_OvmfPkg_Ubuntu_GCC5_CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20OVMF_X64_RELEASE\r
348.. |op64n| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status/PlatformCI_OvmfPkg_Windows_VS2019_CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20OVMF_X64_NOOPT\r
349.. |op64nu| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status/PlatformCI_OvmfPkg_Ubuntu_GCC5_CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20OVMF_X64_NOOPT\r
350\r
351\r
352.. |op3264d| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status/PlatformCI_OvmfPkg_Windows_VS2019_CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20OVMF_IA32X64_DEBUG\r
353.. |op3264du| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status/PlatformCI_OvmfPkg_Ubuntu_GCC5_CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20OVMF_IA32X64_DEBUG\r
354.. |op3264r| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status/PlatformCI_OvmfPkg_Windows_VS2019_CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20OVMF_IA32X64_RELEASE\r
355.. |op3264ru| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status/PlatformCI_OvmfPkg_Ubuntu_GCC5_CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20OVMF_IA32X64_RELEASE\r
356.. |op3264n| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status/PlatformCI_OvmfPkg_Windows_VS2019_CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20OVMF_IA32X64_NOOPT\r
357.. |op3264nu| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status/PlatformCI_OvmfPkg_Ubuntu_GCC5_CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20OVMF_IA32X64_NOOPT\r
358\r
359.. |op3264fd| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status/PlatformCI_OvmfPkg_Windows_VS2019_CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20OVMF_IA32X64_FULL_DEBUG\r
360.. |op3264fdu| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status/PlatformCI_OvmfPkg_Ubuntu_GCC5_CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20OVMF_IA32X64_FULL_DEBUG\r
361.. |op3264fr| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status/PlatformCI_OvmfPkg_Windows_VS2019_CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20OVMF_IA32X64_FULL_RELEASE\r
362.. |op3264fru| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status/PlatformCI_OvmfPkg_Ubuntu_GCC5_CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20OVMF_IA32X64_FULL_RELEASE\r
363.. |op3264fn| replace:: |TCBZ_2661|_\r
364.. |op3264fnu| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status/PlatformCI_OvmfPkg_Ubuntu_GCC5_CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20OVMF_IA32X64_FULL_NOOPT\r