<feed xmlns='http://www.w3.org/2005/Atom'>
<title>Tianocore/edk2.git/MdeModulePkg/Universal/Variable, 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-21T07:23:22+00:00</updated>
<entry>
<title>MdeModulePkg: Variable: Log Reclaim() completion status</title>
<updated>2026-09-21T07:23:22+00:00</updated>
<author>
<name>Abdul Lateef Attar</name>
<email>AbdulLateef.Attar@amd.com</email>
</author>
<published>2026-09-03T08:48:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=586194e3067e914a00e06a85960acd71ad688867'/>
<id>urn:sha1:586194e3067e914a00e06a85960acd71ad688867</id>
<content type='text'>
Adds a DEBUG_INFO message when Reclaim() finishes so platform boot
logs show whether reclaim ran and what status it returned. This
makes it easier to distinguish reclaims impact on boot measurements.

Signed-off-by: Abdul Lateef Attar &lt;AbdulLateef.Attar@amd.com&gt;
</content>
</entry>
<entry>
<title>MdeModulePkg: Improved error handling in RuntimeDxe Variable drivers</title>
<updated>2026-08-31T09:15:32+00:00</updated>
<author>
<name>Paddy Deng (AMI US Holdings Inc)</name>
<email>v-dengpaddy@microsoft.com</email>
</author>
<published>2026-06-12T08:26:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=8bf75267f9311a8a66a3864ee71426c70bb288bb'/>
<id>urn:sha1:8bf75267f9311a8a66a3864ee71426c70bb288bb</id>
<content type='text'>
Some platforms may disable `ASSERT_DEADLOOP_ENABLED` in
`PcdDebugPropertyMask`. In this case ASSERT won't hang the machine.
Replaced those simple ASSERT with proper error returning handling.

Signed-off-by: Paddy Deng (AMI US Holdings Inc) &lt;v-dengpaddy@microsoft.com&gt;
</content>
</entry>
<entry>
<title>MdeModulePkg: Skip deleted vars in PeiVariable index table searches</title>
<updated>2026-08-27T13:22:19+00:00</updated>
<author>
<name>Ansen Huang</name>
<email>ansen.huang@microsoft.com</email>
</author>
<published>2025-11-03T23:02:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=f24679c855400cb306f543bf353f102b9120ba7a'/>
<id>urn:sha1:f24679c855400cb306f543bf353f102b9120ba7a</id>
<content type='text'>
The Variable PEIM's index table optimization search path incorrectly
returns deleted variables instead of valid variables when duplicate
variables exist with different states.

This occurs when:

- One variable has deleted state (VAR_IN_DELETED_TRANSITION &amp; VAR_ADDED,
  value 0x3C)
- One variable has valid state (VAR_ADDED, value 0x3F)
- Both variables have the same name and GUID

The function should prioritize and return the valid variable, but the
index table search was returning the first match regardless of state
validity.

In the FindVariableEx() index table traversal, the function was not
properly validating variable states before returning a match. When
CompareWithValidVariable() found a matching variable name and GUID, it
would return immediately without checking if the variable state was
valid (0x3F) or deleted (0x3C).

This issue only affects the index table optimization search path and
does not impact the linear traversal search path. The Variable PEIM
has two main search mechanisms:

1. Linear traversal search - Walks through the entire variable store
checking each header sequentially. This path has correct state
validation logic and is unaffected by this issue.

2. Index table optimization search - Uses a gEfiVariableIndexTableGuid
HOB to quickly jump to variable locations. This optimization is only
active when the platform produces this HOB. This is the path affected
by the issue.

This commit adds explicit state validation in FindVariableEx() to skip
variables with deleted state (0x3C).

Signed-off-by: Michael Kubacki &lt;michael.kubacki@microsoft.com&gt;
</content>
</entry>
<entry>
<title>MdeModulePkg/Variable: Avoid double VA conversion of FVB protocol</title>
<updated>2026-06-01T06:05:19+00:00</updated>
<author>
<name>Ard Biesheuvel</name>
<email>ardb+tianocore@kernel.org</email>
</author>
<published>2026-03-08T18:37:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=808ee1b53d94feaf80e832b5e817fa10ce2f28be'/>
<id>urn:sha1:808ee1b53d94feaf80e832b5e817fa10ce2f28be</id>
<content type='text'>
For historical reasons, VariableRuntimeDxe performs virtual address
conversion on the FVB protocol member pointers of the protocol instance
that backs the EFI variable store. However, the driver that produces the
actual instance should be doing this, as it is the owner and provides
the actual implementation of those methods.

Unfortunately, we cannot simply remove this: existing FVB drivers may
rely on the Variable driver performing the conversion on their behalf.
So the Variable driver should convert the pointers only when the FVB
producer has not already done so.

The SetVirtualAddressMap event can be delivered in arbitrary order, so
we cannot rely on whether this driver converts its pointers before or
after the FVB protocol owner receives the event.

Fix this by recording the converted addresses in a shadow FVB protocol
rather than converting the live pointers directly. On the first runtime
variable access, check whether the FVB producer has performed its own
conversion; if not, swap in the shadow copy's converted pointers.

Without this fix, platforms where the FVB producer performs its own
SetVirtualAddressMap conversion (e.g., OP-TEE StandaloneMm-backed
EepromFvb on NXP LX2160A) suffer double pointer conversion, causing
runtime variable access to crash.

Signed-off-by: Ard Biesheuvel &lt;ardb+tianocore@kernel.org&gt;
Tested-by: Liz Fong-Jones &lt;lizf@honeycomb.io&gt;
Cc: Liming Gao &lt;gaoliming@byosoft.com.cn&gt;
</content>
</entry>
<entry>
<title>MdeModulePkg: VariableSmmRuntimeDxe: Fix MM communicate v3 buffer sizing</title>
<updated>2026-03-25T17:47:59+00:00</updated>
<author>
<name>Liqi Qi</name>
<email>132628835+liqiqiii@users.noreply.github.com</email>
</author>
<published>2026-03-12T23:06:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=0049ac1793c4abd0652652286e5506f52aaaa0d4'/>
<id>urn:sha1:0049ac1793c4abd0652652286e5506f52aaaa0d4</id>
<content type='text'>
This change updates `VariableSmmRuntimeDxe` to correctly size its runtime
communication buffer when `EFI_MM_COMMUNICATION3_PROTOCOL` is present.

In the current flow, the runtime variable path may use MM communication
v3, but the input size is first validated against the global variable
`mVariableBufferPayloadSize`. The size is then validated a second time
during communication buffer initialization using the v3 header size,
which results in `GetVariable` calls with sufficiently large buffers
consistently failing.

This update makes the allocation logic v3‑aware so that the runtime
variable communication buffer matches the header format actually in use,
avoiding failures for larger variable transactions.

Signed-off-by: Kun Qin &lt;kun.qin@microsoft.com&gt;
</content>
</entry>
<entry>
<title>MdeModulePkg: 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:48:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=7a934d0befca7d10f361c76af6d2fcb6eb48c835'/>
<id>urn:sha1:7a934d0befca7d10f361c76af6d2fcb6eb48c835</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>MdeModulePkg: MmVariablePei: Populate correct v3 header</title>
<updated>2026-02-03T21:56:48+00:00</updated>
<author>
<name>Kun Qin</name>
<email>kuqin@microsoft.com</email>
</author>
<published>2026-01-14T00:07:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=25462a6ab2496d06690b64f2b9afa909fb15a6c2'/>
<id>urn:sha1:25462a6ab2496d06690b64f2b9afa909fb15a6c2</id>
<content type='text'>
When using MM communicate v3 to fetch variable, the header calculation
was incorrect, causing the variable driver on the secure environment to
have random behavior.

This change refactored the original routine by following the current
DXE instance (mostly).

Signed-off-by: Kun Qin &lt;kun.qin@microsoft.com&gt;
</content>
</entry>
<entry>
<title>MdeModulePkg: Fix unchecked return status.</title>
<updated>2025-11-23T00:23:22+00:00</updated>
<author>
<name>Aaron Pop</name>
<email>aaronpop@microsoft.com</email>
</author>
<published>2025-10-22T18:33:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=6d4fbc012fb196ddaff32e48f0c0a57307bf1729'/>
<id>urn:sha1:6d4fbc012fb196ddaff32e48f0c0a57307bf1729</id>
<content type='text'>
https://github.com/github/codeql/blob/codeql-cli-2.7.3/csharp/ql/src/API%20Abuse/UncheckedReturnValue.qhelp

When a function has a return status, it should
be checked to verify the function completed successfully.

Failing to check the return status can result in null pointer
dereferences or use of uninitialized variables.

Signed-off-by: Aaron Pop &lt;aaronpop@microsoft.com&gt;
</content>
</entry>
<entry>
<title>MdeModulePkg: fix various typos</title>
<updated>2025-11-21T21:49:59+00:00</updated>
<author>
<name>Philipp Schuster</name>
<email>philipp.schuster@cyberus-technology.de</email>
</author>
<published>2025-11-04T07:25:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=04398aa4b3e6a769ff1b6fd8e2f38746e19b6200'/>
<id>urn:sha1:04398aa4b3e6a769ff1b6fd8e2f38746e19b6200</id>
<content type='text'>
Signed-off-by: Philipp Schuster &lt;philipp.schuster@cyberus-technology.de&gt;
</content>
</entry>
<entry>
<title>MdeModulePkg: Remove 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-15T16:26:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=ef79d5842734e0504f58aef86142079ed26b7238'/>
<id>urn:sha1:ef79d5842734e0504f58aef86142079ed26b7238</id>
<content type='text'>
edk2 is dropping support for the ARM32 architecture. This
commit removes ARM32 support from MdeModulePkg. This also
drops irrelevant VALID_ARCHITECTURE comments from infs that
are not arch specific.

Signed-off-by: Oliver Smith-Denny &lt;osde@microsoft.com&gt;
</content>
</entry>
</feed>
