Skip to content

3945_arm_cca_v5_s1: Bug fixes for ArmVirtKvmtool guest firmware#12375

Merged
mergify[bot] merged 2 commits intotianocore:masterfrom
samimujawar:3945_arm_cca_v5_s1
Apr 3, 2026
Merged

3945_arm_cca_v5_s1: Bug fixes for ArmVirtKvmtool guest firmware#12375
mergify[bot] merged 2 commits intotianocore:masterfrom
samimujawar:3945_arm_cca_v5_s1

Conversation

@samimujawar
Copy link
Copy Markdown
Contributor

Bug fixes for ArmVirtKvmtool guest firmware

This patch series fixes the following issues observed with ArmVirtKvmtool guest firmware:

  1. Only install IORT table when the Kvmtool guest is launched with GICv3 ITS support.
  2. Handle missing 'iommu-map' in root complex parser which leads to an assertion.

Note: This is a PR series that includes patches from PR #12224

  • Breaking change?
    • NO
  • Impacts security?
    • NO
  • Includes tests?
    • No explicit test, run Kvmtool guest firmware.

How This Was Tested

Tested by launching a guest using Kvmtool VMM and booting the ArmVirtKvmtool guest firmware.

Integration Instructions

N/A

@ardbiesheuvel ardbiesheuvel added the push Auto push patch series in PR if all checks pass label Apr 2, 2026
@mergify mergify Bot added the queued label Apr 2, 2026
@mergify
Copy link
Copy Markdown

mergify Bot commented Apr 2, 2026

Merge Queue Status

  • Entered queue2026-04-02 07:40 UTC · Rule: default
  • Checks started · in-place
  • 🚫 Left the queue2026-04-02 07:52 UTC · at 231e173530b5c90d49fa920f0ae24d226ac4dbca

This pull request spent 11 minutes 24 seconds in the queue, with no time running CI.

Required conditions to merge
  • any of [🛡 GitHub branch protection]:
    • check-neutral = ArmVirtPkg - Ubuntu GCC - PR
    • check-skipped = ArmVirtPkg - Ubuntu GCC - PR
    • check-success = ArmVirtPkg - Ubuntu GCC - PR
  • any of [🛡 GitHub branch protection]:
    • check-neutral = EmulatorPkg - Windows VS - PR
    • check-skipped = EmulatorPkg - Windows VS - PR
    • check-success = EmulatorPkg - Windows VS - PR
  • any of [🛡 GitHub branch protection]:
    • check-neutral = Windows VS - PR
    • check-skipped = Windows VS - PR
    • check-success = Windows VS - PR
  • any of [🛡 GitHub branch protection]:
    • check-neutral = Ubuntu GCC - PR
    • check-skipped = Ubuntu GCC - PR
    • check-success = Ubuntu GCC - PR
  • any of [🛡 GitHub branch protection]:
    • check-neutral = ArmVirtPkg - Ubuntu - CLANGPDB
    • check-skipped = ArmVirtPkg - Ubuntu - CLANGPDB
    • check-success = ArmVirtPkg - Ubuntu - CLANGPDB
  • any of [🛡 GitHub branch protection]:
    • check-neutral = OvmfPkg - Ubuntu - CLANGPDB
    • check-skipped = OvmfPkg - Ubuntu - CLANGPDB
    • check-success = OvmfPkg - Ubuntu - CLANGPDB
  • any of [🛡 GitHub branch protection]:
    • check-neutral = Ubuntu - CLANGPDB
    • check-skipped = Ubuntu - CLANGPDB
    • check-success = Ubuntu - CLANGPDB
  • any of [🛡 GitHub branch protection]:
    • check-neutral = Windows - CLANGPDB
    • check-skipped = Windows - CLANGPDB
    • check-success = Windows - CLANGPDB
  • #approved-reviews-by >= 1 [🛡 GitHub branch protection]
  • #changes-requested-reviews-by = 0 [🛡 GitHub branch protection]
  • #review-threads-unresolved = 0 [🛡 GitHub branch protection]
  • any of [🛡 GitHub branch protection]:
    • check-success = tianocore.PatchCheck
    • check-neutral = tianocore.PatchCheck
    • check-skipped = tianocore.PatchCheck
  • any of [🛡 GitHub branch protection]:
    • check-success = EmulatorPkg - Ubuntu GCC - PR
    • check-neutral = EmulatorPkg - Ubuntu GCC - PR
    • check-skipped = EmulatorPkg - Ubuntu GCC - PR
  • any of [🛡 GitHub branch protection]:
    • check-success = OvmfPkg - Ubuntu GCC - PR
    • check-neutral = OvmfPkg - Ubuntu GCC - PR
    • check-skipped = OvmfPkg - Ubuntu GCC - PR
  • any of [🛡 GitHub branch protection]:
    • check-success = OvmfPkg - Windows VS - PR
    • check-neutral = OvmfPkg - Windows VS - PR
    • check-skipped = OvmfPkg - Windows VS - PR
  • any of [🛡 GitHub branch protection]:
    • check-success = Validate Pull Request Formatting
    • check-neutral = Validate Pull Request Formatting
    • check-skipped = Validate Pull Request Formatting

Reason

The merge conditions cannot be satisfied due to failing checks

Hint

You may have to fix your CI before adding the pull request to the queue again.
If you update this pull request, to fix the CI, it will automatically be requeued once the queue conditions match again.
If you think this was a flaky issue instead, you can requeue the pull request, without updating it, by posting a @mergifyio queue comment.

@mergify mergify Bot added dequeued and removed queued labels Apr 2, 2026
@samimujawar
Copy link
Copy Markdown
Contributor Author

@Mergifyio queue

@mergify
Copy link
Copy Markdown

mergify Bot commented Apr 2, 2026

Merge Queue Status

🛑 Queue command has been cancelled

@samimujawar
Copy link
Copy Markdown
Contributor Author

@Mergifyio queue

@mergify
Copy link
Copy Markdown

mergify Bot commented Apr 2, 2026

queue

☑️ Command queue ignored because it is already running from a previous command.

@mergify mergify Bot added the dequeued label Apr 2, 2026
When the Kvmtool guest is launched without ITS support
i.e. when --irq-chip=gicv3-its option is not specified
or if --irq-chip=gicv3 is specified, the guest VM does
not have an ITS.

In such scenarios the guest firmware must not install
the IORT table. Therefore, add checks to see if ITS is
present before installing the IORT ACPI table.

Cc: Ard Biesheuvel <ardb+tianocore@kernel.org>
Cc: Leif Lindholm <leif.lindholm@oss.qualcomm.com>
Cc: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Sami Mujawar <sami.mujawar@arm.com>
Some guests (e.g. kvmtool) do not provide a SMMU, so the PCI node
in the DTB lacks an 'iommu-map'. The current code ASSERTs during
boot with:
"ASSERT [ConfigurationManagerDxe] RootComplexParser.c(244):
(Data != ((void *) 0)) && ((DataSize % (4 * sizeof (UINT32))) == 0)"

Instead, return EFI_NOT_FOUND when 'iommu-map' is absent so firmware
boot can proceed.

Cc: Ard Biesheuvel <ardb+tianocore@kernel.org>
Cc: Leif Lindholm <leif.lindholm@oss.qualcomm.com>
Cc: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Sami Mujawar <sami.mujawar@arm.com>
@mergify mergify Bot added queued and removed dequeued labels Apr 2, 2026
@mergify
Copy link
Copy Markdown

mergify Bot commented Apr 2, 2026

Merge Queue Status

  • Entered queue2026-04-02 23:25 UTC · Rule: default
  • Checks skipped · PR is already up-to-date
  • Merged2026-04-03 00:17 UTC · at c5f204940e89eae2c0721c19c169ee17ceb9ad6b

This pull request spent 51 minutes 53 seconds in the queue, including 1 second running CI.

Required conditions to merge
  • #approved-reviews-by >= 1 [🛡 GitHub branch protection]
  • #changes-requested-reviews-by = 0 [🛡 GitHub branch protection]
  • #review-threads-unresolved = 0 [🛡 GitHub branch protection]
  • any of [🛡 GitHub branch protection]:
    • check-success = tianocore.PatchCheck
    • check-neutral = tianocore.PatchCheck
    • check-skipped = tianocore.PatchCheck
  • any of [🛡 GitHub branch protection]:
    • check-success = ArmVirtPkg - Ubuntu GCC - PR
    • check-neutral = ArmVirtPkg - Ubuntu GCC - PR
    • check-skipped = ArmVirtPkg - Ubuntu GCC - PR
  • any of [🛡 GitHub branch protection]:
    • check-success = EmulatorPkg - Ubuntu GCC - PR
    • check-neutral = EmulatorPkg - Ubuntu GCC - PR
    • check-skipped = EmulatorPkg - Ubuntu GCC - PR
  • any of [🛡 GitHub branch protection]:
    • check-success = EmulatorPkg - Windows VS - PR
    • check-neutral = EmulatorPkg - Windows VS - PR
    • check-skipped = EmulatorPkg - Windows VS - PR
  • any of [🛡 GitHub branch protection]:
    • check-success = OvmfPkg - Ubuntu GCC - PR
    • check-neutral = OvmfPkg - Ubuntu GCC - PR
    • check-skipped = OvmfPkg - Ubuntu GCC - PR
  • any of [🛡 GitHub branch protection]:
    • check-success = OvmfPkg - Windows VS - PR
    • check-neutral = OvmfPkg - Windows VS - PR
    • check-skipped = OvmfPkg - Windows VS - PR
  • any of [🛡 GitHub branch protection]:
    • check-success = Windows VS - PR
    • check-neutral = Windows VS - PR
    • check-skipped = Windows VS - PR
  • any of [🛡 GitHub branch protection]:
    • check-success = Ubuntu GCC - PR
    • check-neutral = Ubuntu GCC - PR
    • check-skipped = Ubuntu GCC - PR
  • any of [🛡 GitHub branch protection]:
    • check-success = Validate Pull Request Formatting
    • check-neutral = Validate Pull Request Formatting
    • check-skipped = Validate Pull Request Formatting
  • any of [🛡 GitHub branch protection]:
    • check-success = ArmVirtPkg - Ubuntu - CLANGPDB
    • check-neutral = ArmVirtPkg - Ubuntu - CLANGPDB
    • check-skipped = ArmVirtPkg - Ubuntu - CLANGPDB
  • any of [🛡 GitHub branch protection]:
    • check-success = OvmfPkg - Ubuntu - CLANGPDB
    • check-neutral = OvmfPkg - Ubuntu - CLANGPDB
    • check-skipped = OvmfPkg - Ubuntu - CLANGPDB
  • any of [🛡 GitHub branch protection]:
    • check-success = Ubuntu - CLANGPDB
    • check-neutral = Ubuntu - CLANGPDB
    • check-skipped = Ubuntu - CLANGPDB
  • any of [🛡 GitHub branch protection]:
    • check-success = Windows - CLANGPDB
    • check-neutral = Windows - CLANGPDB
    • check-skipped = Windows - CLANGPDB

@mergify mergify Bot merged commit 18d0c35 into tianocore:master Apr 3, 2026
155 checks passed
@mergify mergify Bot removed the queued label Apr 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

push Auto push patch series in PR if all checks pass

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants