Skip to content

Add APMT ACPI table support for guest uncore PMU#48

Open
Arvean-microsoft wants to merge 1 commit intomicrosoft:mainfrom
Arvean-microsoft:arveanlabib/apmt-support
Open

Add APMT ACPI table support for guest uncore PMU#48
Arvean-microsoft wants to merge 1 commit intomicrosoft:mainfrom
Arvean-microsoft:arveanlabib/apmt-support

Conversation

@Arvean-microsoft
Copy link

Add receive and install support for the ARM Performance Monitoring Table (APMT) in the guest UEFI firmware. This enables guest VMs to discover uncore PMU MMIO ranges when the host provides an APMT via the UEFI config blob.

Changes:

  • Add UefiConfigApmt (0x28) enum value and UEFI_CONFIG_APMT struct
  • Add ARM_ACPI_APMT_TABLE_SIGNATURE definition
  • Add PcdApmtPtr/PcdApmtSize PCDs (tokens 0x6073/0x6074)
  • Parse and validate APMT in PEI phase (Config.c)
  • Install APMT in DXE phase via AcpiInstallApmtTable()
  • Wire PCDs through both AARCH64 and X64 DSC/INF files

The APMT is optional: it is not added to requiredStructures, and the DXE installer gracefully skips when the table is absent. The parsing and installation follow the same pattern as IORT/PPTT/HMAT.

@Arvean-microsoft
Copy link
Author

@Arvean-microsoft please read the following Contributor License Agreement(CLA). If you agree with the CLA, please reply with the following information.

@microsoft-github-policy-service agree [company="{your company}"]

Options:

  • (default - no company specified) I have sole ownership of intellectual property rights to my Submissions and I am not making Submissions in the course of work for my employer.
@microsoft-github-policy-service agree
  • (when company given) I am making Submissions in the course of work for my employer (or my employer has intellectual property rights in my Submissions by contract or applicable law). I have permission from my employer to make Submissions and enter into this Agreement on behalf of my employer. By signing below, the defined term “You” includes me and my employer.
@microsoft-github-policy-service agree company="Microsoft"

Contributor License Agreement

@Arvean-microsoft
Copy link
Author

@Arvean-microsoft please read the following Contributor License Agreement(CLA). If you agree with the CLA, please reply with the following information.

@microsoft-github-policy-service agree [company="{your company}"]

Options:

  • (default - no company specified) I have sole ownership of intellectual property rights to my Submissions and I am not making Submissions in the course of work for my employer.
@microsoft-github-policy-service agree
  • (when company given) I am making Submissions in the course of work for my employer (or my employer has intellectual property rights in my Submissions by contract or applicable law). I have permission from my employer to make Submissions and enter into this Agreement on behalf of my employer. By signing below, the defined term “You” includes me and my employer.
@microsoft-github-policy-service agree company="Microsoft"

Contributor License Agreement
@microsoft-github-policy-service agree company="Microsoft"

@Arvean-microsoft Arvean-microsoft force-pushed the arveanlabib/apmt-support branch from d0990b1 to 0e0d24c Compare March 13, 2026 21:51
Add receive and install support for the ARM Performance Monitoring Table
(APMT) in the guest UEFI firmware. This enables guest VMs to discover
uncore PMU MMIO ranges when the host provides an APMT via the UEFI
config blob.

Changes:
- Add UefiConfigApmt (0x28) enum value and UEFI_CONFIG_APMT struct
- Add ARM_ACPI_APMT_TABLE_SIGNATURE definition
- Add PcdApmtPtr/PcdApmtSize PCDs (tokens 0x6073/0x6074)
- Parse and validate APMT in PEI phase (Config.c)
- Install APMT in DXE phase via AcpiInstallApmtTable()
- Wire PCDs through both AARCH64 and X64 DSC/INF files

The APMT is optional: it is not added to requiredStructures, and the
DXE installer gracefully skips when the table is absent. The parsing
and installation follow the same pattern as IORT/PPTT/HMAT.
@Arvean-microsoft Arvean-microsoft force-pushed the arveanlabib/apmt-support branch from 0e0d24c to 64df8e8 Compare March 13, 2026 21:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant