<feed xmlns='http://www.w3.org/2005/Atom'>
<title>Tianocore/edk2.git/FmpDevicePkg, branch master</title>
<subtitle>EDK II (mirror)</subtitle>
<id>https://git.radix-linux.su/Tianocore/edk2.git/atom?h=master</id>
<link rel='self' href='https://git.radix-linux.su/Tianocore/edk2.git/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/'/>
<updated>2026-09-15T16:54:35+00:00</updated>
<entry>
<title>FmpDevicePkg: Improve library documentation</title>
<updated>2026-09-15T16:54:35+00:00</updated>
<author>
<name>Michael Kubacki</name>
<email>michael.kubacki@microsoft.com</email>
</author>
<published>2020-11-10T20:59:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=0eab3bd872a0e8f7b219309458b1168b3f1adcae'/>
<id>urn:sha1:0eab3bd872a0e8f7b219309458b1168b3f1adcae</id>
<content type='text'>
Adds a Readme.md to each library instance and updates the package
Readme.md to reference available library documentation.

Signed-off-by: Michael Kubacki &lt;michael.kubacki@microsoft.com&gt;
</content>
</entry>
<entry>
<title>FmpDevicePkg: Host Test: Adding AArch64 target</title>
<updated>2026-07-31T15:16:47+00:00</updated>
<author>
<name>Kun Qin</name>
<email>kuqin@microsoft.com</email>
</author>
<published>2026-01-28T00:40:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=a57c5b6da450ea78ad53035d5b2d8337a6a0f00e'/>
<id>urn:sha1:a57c5b6da450ea78ad53035d5b2d8337a6a0f00e</id>
<content type='text'>
This change adds the AArch64 target for host based unit tests.

Signed-off-by: Kun Qin &lt;kun.qin@microsoft.com&gt;
</content>
</entry>
<entry>
<title>Global: Set MarkdownLintCheck plugin to AuditOnly</title>
<updated>2026-07-29T12:32:09+00:00</updated>
<author>
<name>Michael Kubacki</name>
<email>michael.kubacki@microsoft.com</email>
</author>
<published>2026-07-22T00:42:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=df9111c2d381546ff23cdf327546ad49f51ce779'/>
<id>urn:sha1:df9111c2d381546ff23cdf327546ad49f51ce779</id>
<content type='text'>
In preparation for the MarkdownLintCheck plugin being added to the
repo, this change defaults the plugin to `AuditOnly` mode in each
package. This allows package maintainers to enable the plugin as they
see fit.

Continuous-integration-options: PatchCheck.ignore-multi-package
Signed-off-by: Michael Kubacki &lt;michael.kubacki@microsoft.com&gt;
</content>
</entry>
<entry>
<title>FmpDevicePkg/FmpDxe: Reduce NV variable reads for FMP state</title>
<updated>2026-07-20T05:44:52+00:00</updated>
<author>
<name>Shubham Kumar</name>
<email>kumarshubha@microsoft.com</email>
</author>
<published>2026-07-01T10:58:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=dc52b0c75bd299ea3bc4c6273d3dfeb26253c001'/>
<id>urn:sha1:dc52b0c75bd299ea3bc4c6273d3dfeb26253c001</id>
<content type='text'>
In PopulateDescriptor(), each FMP device previously called
GetFmpControllerState() multiple times through individual getter
functions (GetVersionFromVariable, GetLowestSupportedVersionFromVariable,
etc.), each performing a separate GetVariable() call to read the same
FmpControllerState NV variable.

Rename the getter functions to *FromFmpControllerState and simplify
them to pure field extractors that take a required FMP_CONTROLLER_STATE
pointer. Each getter extracts the field value if the state is non-NULL
and the field is valid, returning a default otherwise. No getter calls
GetFmpControllerState() internally.

PopulateDescriptor() now calls GetFmpControllerState() once and passes
the result to all getters, then frees it after the last use. This
eliminates redundant NV reads when the variable exists and avoids
repeated failed reads and error messages when the variable does not
exist.

Signed-off-by: Shubham Kumar &lt;kumarshubha@microsoft.com&gt;
</content>
</entry>
<entry>
<title>FmpDevicePkg: Replace include guards with #pragma once</title>
<updated>2026-02-23T21:01:28+00:00</updated>
<author>
<name>Michael Kubacki</name>
<email>michael.kubacki@microsoft.com</email>
</author>
<published>2026-02-03T18:28:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=58ace50a43097df8408d41aec81e4b47a5a79cfc'/>
<id>urn:sha1:58ace50a43097df8408d41aec81e4b47a5a79cfc</id>
<content type='text'>
Replace traditional `#ifndef`/`#define`/`#endif` include guards with
`#pragma` once.

`#pragma once` is a widely supported preprocessor directive that
prevents header files from being included multiple times. It is
supported by all toolchains used to build edk2: GCC, Clang/LLVM, and
MSVC.

Compared to macro-based include guards, `#pragma once`:

- Eliminates the risk of macro name collisions or copy/paste errors
  where two headers inadvertently use the same guard macro.
- Eliminate inconsistency in the way include guard macros are named
  (e.g., some files use `__FILE_H__`, others use `FILE_H_`, etc.).
- Reduces boilerplate (three lines replaced by one).
- Avoids polluting the macro namespace with guard symbols.
- Can improve build times as the preprocessor can skip re-opening the
  file entirely, rather than re-reading it to find the matching
  `#endif` ("multiple-include optimization").
  - Note that some compilers may already optimize traditional include
    guards, by recognzining the idiomatic pattern.

This change is made acknowledging that overall portability of the
code will technically be reduced, as `#pragma once` is not part of the
C/C++ standards.

However, this is considered acceptable given:

1. edk2 already defines a subset of supported compilers in
   BaseTools/Conf/tools_def.template, all of which have supported
   `#pragma once` for over two decades.
2. There have been concerns raised to the project about inconsistent
   include guard naming and potential macro collisions.

Approximate compiler support dates:

- MSVC: Supported since Visual C++ 4.2 (1996)
- GCC: Supported since 3.4 (2004)
  (http://gnu.ist.utl.pt/software/gcc/gcc-3.4/changes.html)
- Clang (LLVM based): Since initial release in 2007

Signed-off-by: Michael Kubacki &lt;michael.kubacki@microsoft.com&gt;
</content>
</entry>
<entry>
<title>FmpDevicePkg: GetImageInfo Add missing conditions</title>
<updated>2025-11-03T07:48:00+00:00</updated>
<author>
<name>Pethaiyan Madhan</name>
<email>madhan.pethaiyan@intel.com</email>
</author>
<published>2024-04-23T12:51:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=cb8c8c928558fa56224dee7e0c393cd663ee1aa3'/>
<id>urn:sha1:cb8c8c928558fa56224dee7e0c393cd663ee1aa3</id>
<content type='text'>
REF: UEFI spec v2.10 23.1.2
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4660

1.For EFI_FIRMWARE_MANAGEMENT_PROTOCOL.GetImage():
Add the following sentence at the end of the Image parameter
description. "May be NULL with a zero ImageSize in order to determine
the size of the buffer needed".

Modify the description of "EFI_INVALID_PARAMETER" return code as "The
ImageSize is not too small and Image is NULL."

2.For EFI_FIRMWARE_MANAGEMENT_PROTOCOL.GetImageInfo():
Add the following sentence at the end of the ImageInfo parameter
description."May be NULL with a zero ImageInfoSize in order to
determine the size of the buffer needed".

Modify the description of "EFI_INVALID_PARAMETER" return code as "The
ImageInfoSize is not too small and Image is NULL." and add new
descriptions for "EFI_INVALID_PARAMETER" return code.

Cc: Michael D Kinney &lt;michael.d.kinney@intel.com&gt;
Cc: Liming Gao &lt;gaoliming@byosoft.com.cn&gt;
Cc: Zhiguang Liu &lt;zhiguang.liu@intel.com&gt;
Cc: Yi Li &lt;yi1.li@intel.com&gt;
Signed-off-by: Pethaiyan Madhan &lt;madhan.pethaiyan@intel.com&gt;
</content>
</entry>
<entry>
<title>FmpDevicePkg: Drop ARM32 Support</title>
<updated>2025-09-25T22:04:10+00:00</updated>
<author>
<name>Oliver Smith-Denny</name>
<email>osde@microsoft.com</email>
</author>
<published>2025-09-15T14:57:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=2c059facb3772be3ce8a05fccf26323d935719aa'/>
<id>urn:sha1:2c059facb3772be3ce8a05fccf26323d935719aa</id>
<content type='text'>
edk2 is dropping support for the ARM32 architecture. This
commit removes ARM32 code from FmpDevicePkg. This also drops
irrelevant VALID_ARCHITECTURES comments from infs that are
not arch specific.

Signed-off-by: Oliver Smith-Denny &lt;osde@microsoft.com&gt;
</content>
</entry>
<entry>
<title>FmpDevicePkg/FmpDxe: Improve handling of XDR certs</title>
<updated>2025-09-24T00:02:41+00:00</updated>
<author>
<name>Antaeus Kleinert-Strand</name>
<email>antklein@microsoft.com</email>
</author>
<published>2025-09-18T01:51:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=17691a2641c2715fc1196aa1b0fe85b85db6c240'/>
<id>urn:sha1:17691a2641c2715fc1196aa1b0fe85b85db6c240</id>
<content type='text'>
The current implementation for XDR certificate handling assumes the
PublicKeyDataXdr buffer is 4-byte aligned. This is not always the case.
For example, if PublicKeyDataXdr=0x02, and the length is 0x05, the
correct offset should be 0x2 + align_up(0x5, 4) -&gt; 0x2 + 0x8 = 0xA. The
current logic produces align_up(0x2 + 0x5, 4) -&gt; align_up(0x7, 4) = 0x8.

Signed-off-by: Antaeus Kleinert-Strand &lt;antklein@microsoft.com&gt;
</content>
</entry>
<entry>
<title>FmpDevicePkg/Library: Correct comment description</title>
<updated>2025-09-10T01:36:29+00:00</updated>
<author>
<name>Damien-Chen</name>
<email>inkfan130924783@gmail.com</email>
</author>
<published>2025-07-10T12:31:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=9b931ae81fccfb98b800f059132f2a2c4c30f85c'/>
<id>urn:sha1:9b931ae81fccfb98b800f059132f2a2c4c30f85c</id>
<content type='text'>
Correct comment description.
Signed-off-by: Damien Chen &lt;inkfan130924783@gmail.com&gt;
</content>
</entry>
<entry>
<title>FmpDevicePkg: Clarify return status of FMP Protocol GetImage()</title>
<updated>2025-01-09T04:40:45+00:00</updated>
<author>
<name>INDIA\sachinganesh</name>
<email>sachinganesh@ami.com</email>
</author>
<published>2024-10-17T20:27:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=768adcd9c1483203a089078767fb0ef1d0048c3d'/>
<id>urn:sha1:768adcd9c1483203a089078767fb0ef1d0048c3d</id>
<content type='text'>
Clarifed the return status of EFI_FIRMWARE_MANAGEMENT_PROTOCOL.GetImage().
As intended in UEFI 2.10 Specification.

Signed-off-by: Sachin Ganesh &lt;sachinganesh@ami.com&gt;
</content>
</entry>
</feed>
