<feed xmlns='http://www.w3.org/2005/Atom'>
<title>Tianocore/edk2.git/MdeModulePkg/Universal/Acpi, branch dependabot/github_actions/actions/github-script-9</title>
<subtitle>EDK II (mirror)</subtitle>
<id>https://git.radix-linux.su/Tianocore/edk2.git/atom?h=dependabot%2Fgithub_actions%2Factions%2Fgithub-script-9</id>
<link rel='self' href='https://git.radix-linux.su/Tianocore/edk2.git/atom?h=dependabot%2Fgithub_actions%2Factions%2Fgithub-script-9'/>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/'/>
<updated>2026-03-19T03:39:15+00:00</updated>
<entry>
<title>MdeModulePkg: : revert EndofDxeEvent TPLs to TPL_NOTIFY for FPDT</title>
<updated>2026-03-19T03:39:15+00:00</updated>
<author>
<name>Yeoreum Yun</name>
<email>yeoreum.yun@arm.com</email>
</author>
<published>2026-03-18T11:03:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=8c50e656c088384fe8d47b4b51186d5ee225b199'/>
<id>urn:sha1:8c50e656c088384fe8d47b4b51186d5ee225b199</id>
<content type='text'>
commit aa02571 ("MdeModulePkg: Change EndofDxeEvent TPLs to TPL_CALLBACK")
changed EndOfDxeEvent TPLs from TPL_NOFIY to TPL_CALLBACK.

However this commit makes a boot failure on the FVP platform when FPDT
ACPI table generation is enabled:

  [FirmwarePerformanceDxe] Error when lock variable FirmwarePerformance, Status = Write Protected

  ASSERT_EFI_ERROR (Status = Write Protected)
  ASSERT [FirmwarePerformanceDxe] FirmwarePerformanceDxe.c(405): !(((RETURN_STATUS)(Status)) &gt;= 0x8000000000000000ULL)

Currently, EVT_NOTIFY_SIGNAL events are managed in FILO order,
as new events are inserted using InsertHeadList().

The sequence is as follows:

  1. DxeCore initializes DxeCorePerformanceLib, whose constructor creates
     an EndOfDxe event (gEfiEndOfDxeEventGroupGuid) with the
     ReportFpdtRecordBuffer() callback.

  2. MmCommunicationDxe (in ArmPkg) creates another EndOfDxe event to
     notify StandaloneMm. This event is inserted ahead of the one created
     in (1).

  3. PlatformBootManagerBeforeConsole() signals EndOfDxe, which triggers
     the event created in (2) first.

  4. When the callback from (2) runs, StandaloneMm calls
     LockVariablePolicy().

  5. The callback from (1) is then invoked and attempts to update FPDT via
     InstallFirmwarePerformanceDataTable(). During this process, it tries
     to register a variable policy for the FirmwarePerformance variable.
     However, since the Variable Policy interface was locked in (4), the
     operation fails with EFI_WRITE_PROTECTED.

To resolve this issue, revert EndofDxeEvent TPLs to TPL_NOTIFY for FPDT.

Fixes: aa02571 ("MdeModulePkg: Change EndofDxeEvent TPLs to TPL_CALLBACK")
Signed-off-by: Yeoreum Yun &lt;yeoreum.yun@arm.com&gt;
</content>
</entry>
<entry>
<title>MdeModulePkg: Change EndofDxeEvent TPLs to TPL_CALLBACK</title>
<updated>2026-03-17T02:38:07+00:00</updated>
<author>
<name>Sherry Fan</name>
<email>sherryfan@microsoft.com</email>
</author>
<published>2026-01-17T02:20:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=aa02571f362c2c20842fd6c2de88b746a9c8acd3'/>
<id>urn:sha1:aa02571f362c2c20842fd6c2de88b746a9c8acd3</id>
<content type='text'>
Change FPDT events at EndOfDxe to TPL_CALLBACK as TPL_NOTIFY is not
necessary.

Signed-off-by: Sherry Fan &lt;sherryfan@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/AcpiTableDxe:Created EfiACPIReclaimMemory for ACPIHOB RSDP</title>
<updated>2026-01-19T09:55:23+00:00</updated>
<author>
<name>George Liao</name>
<email>george.liao@intel.com</email>
</author>
<published>2026-01-05T07:21:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=564b8e182569eaf611bad765587b40387dafea33'/>
<id>urn:sha1:564b8e182569eaf611bad765587b40387dafea33</id>
<content type='text'>
The RSDP table come from ACPI HOB which may no store in the
EfiACPIReclaimMemory-type memory. Therefore need to reserve an
EfiACPIReclaimMemory-type memory for it.

Signed-off-by: George Liao &lt;george.liao@intel.com&gt;
</content>
</entry>
<entry>
<title>MdeModulePkg: Acpi cumulative codeql issues.</title>
<updated>2025-11-24T00:41:30+00:00</updated>
<author>
<name>Michael Kubacki</name>
<email>michael.kubacki@microsoft.com</email>
</author>
<published>2025-05-12T16:48:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=4f323d920f564e1030219becf89ae6d03b7c1d53'/>
<id>urn:sha1:4f323d920f564e1030219becf89ae6d03b7c1d53</id>
<content type='text'>
Running Codeql on MdeModulePkg/Universal/Acpi drivers results
in codeql errors stemming from missing null tests.

Signed-off-by: Aaron Pop &lt;aaronpop@microsoft.com&gt;

Co-authored-by: Michael Kubacki &lt;michael.kubacki@microsoft.com&gt;
Co-authored-by: Taylor Beebe &lt;tabeebe@microsoft.com&gt;
Co-authored-by: pohanch &lt;125842322+pohanch@users.noreply.github.com&gt;
Co-authored-by: kenlautner &lt;85201046+kenlautner@users.noreply.github.com&gt;
Co-authored-by: Oliver Smith-Denny &lt;osde@linux.microsoft.com&gt;
Co-authored-by: Sean Brogan &lt;sean.brogan@microsoft.com&gt;
Co-authored-by: Aaron &lt;aaronpop@microsoft&gt;
</content>
</entry>
<entry>
<title>MdeModulePkg/AcpiTableDxe: Fixed exception when enable SpecialPool</title>
<updated>2025-11-23T11:40:49+00:00</updated>
<author>
<name>George Liao</name>
<email>george.liao@intel.com</email>
</author>
<published>2025-11-10T09:33:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=30b405d79a0be8bb46aa2bdcf242e2653c1ce39c'/>
<id>urn:sha1:30b405d79a0be8bb46aa2bdcf242e2653c1ce39c</id>
<content type='text'>
In some corner cases the NeedToInstallTable not been initialized
well in the InstallAcpiTableFromAcpiSiliconHob, which caused
exception when enable special pool function.

This patch fixed exception by initialize NeedToInstallTable
well.

Signed-off-by: George Liao &lt;george.liao@intel.com&gt;
</content>
</entry>
<entry>
<title>MdeModulePkg/AcpiTableDxe:Improving InitializeAcpiTableDxe behavior.</title>
<updated>2025-10-21T11:46:17+00:00</updated>
<author>
<name>George Liao</name>
<email>george.liao@intel.com</email>
</author>
<published>2025-10-21T09:03:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=44214c0cdf12bf91df9319c5bc90c640b461f252'/>
<id>urn:sha1:44214c0cdf12bf91df9319c5bc90c640b461f252</id>
<content type='text'>
Improving InitializeAcpiTableDxe() behavior.

Signed-off-by: George Liao &lt;george.liao@intel.com&gt;
</content>
</entry>
<entry>
<title>MdeModulePkg:Completed InstallAcpiTableFromAcpiSiliconHob AddTableList</title>
<updated>2025-10-21T11:46:17+00:00</updated>
<author>
<name>George Liao</name>
<email>george.liao@intel.com</email>
</author>
<published>2025-10-21T08:57:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=9f31aa33d8f83d01372750b219cd9960a8aff7a0'/>
<id>urn:sha1:9f31aa33d8f83d01372750b219cd9960a8aff7a0</id>
<content type='text'>
Added "PublishTables()" and "SdtNotifyAcpiList()" for completing
AddTableToList behavior in the InstallAcpiTableFromAcpiSiliconHob().

Signed-off-by: George Liao &lt;george.liao@intel.com&gt;
</content>
</entry>
<entry>
<title>MdeModulePkg/AcpiTableDxe:Fixed memory corruption issue</title>
<updated>2025-10-21T11:46:17+00:00</updated>
<author>
<name>George Liao</name>
<email>george.liao@intel.com</email>
</author>
<published>2025-10-09T06:28:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=c22d6957f431358dbf2dca3047233949bb292a49'/>
<id>urn:sha1:c22d6957f431358dbf2dca3047233949bb292a49</id>
<content type='text'>
Clearing wrong memory content after allocated memory for XSDT,
which caused AcpiSdtProtocol cannot be installed and
unexpected behavior.

According to the UEFI spec and commit message of "PCD switch to
 avoid using ACPI reclaim memory", so need to add this support in the
 InstallAcpiTableFromAcpiSiliconHob().

1. Fixed memory corruption issue in the
   InstallAcpiTableFromAcpiSiliconHob().
2. Added "PCD switch to avoid using ACPI reclaim memory" support in
   the InstallAcpiTableFromAcpiSiliconHob().

Signed-off-by: George Liao &lt;george.liao@intel.com&gt;
</content>
</entry>
<entry>
<title>MdeModulePkg/AcpiTableDxe: Add function for extract ACPI table from HOB.</title>
<updated>2025-05-02T09:35:02+00:00</updated>
<author>
<name>George Liao</name>
<email>george.liao@intel.com</email>
</author>
<published>2025-03-31T08:54:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=dd8c272555cb9fed7730acd386d103e287d7e4cd'/>
<id>urn:sha1:dd8c272555cb9fed7730acd386d103e287d7e4cd</id>
<content type='text'>
1. Got RSDP table which installed during the FSP phase from Hob,
   then pass it to the DXE AcpiTableInstance.
2. Got XSDT from RSDP and extract necessary data from XSDT,
   according to the old XSDT to Initialize a new XSDT.
3. Re-install ACPI table from old XSDT to the new XSDT.
   a. If Hob has DSDT table then re-install DSDT table in the new XSDT.
      If not, then skip it.
   b. If Hob has FACS table then re-install FACS table in the new XSDT.
      If not, then skip it.

Signed-off-by: George Liao &lt;george.liao@intel.com&gt;
</content>
</entry>
</feed>
