Skip to content

Switch to KVM hypervisor on Rb3Gen2-Core-Kit and QCM6490-IDP - #2879

Merged
Ricardo Salveti (ricardosalveti) merged 8 commits into
qualcomm-linux:masterfrom
vkraleti:kodiak-kvm
Sep 17, 2026
Merged

Ricardo Salveti (ricardosalveti) merged 8 commits into
qualcomm-linux:masterfrom
vkraleti:kodiak-kvm

Conversation

@vkraleti

@vkraleti Viswanath Kraleti (vkraleti) commented Aug 5, 2026 •

Copy link
Copy Markdown
Contributor

All PILs are functioning correctly with KVM on Rb3Gen2-Core-Kit and QCM6490-IDP. Update
FIT_DTB_COMPATIBLE entries and machine configurations to switch to KVM on these boards.

Comment thread .github/workflows/build-yocto.yml
Comment thread .github/workflows/build-yocto.yml Outdated
@qcomlnxci

Copy link
Copy Markdown

Test Coral run workflow

Test jobs for commit c4dcacb

  • qcomdistro: multimedia image-prop
    Pass: 38 | Fail: 3 | Others: 12 | Total: 53
  • qcomdistro: multimedia image
    Pass: 8 | Fail: 1 | Total: 9

@github-actions

github-actions Bot commented Aug 19, 2026 •

Copy link
Copy Markdown

Test run workflow

Test jobs for commit 8eb083a

qcom-distro
Pass: 307 | Fail: 19 | Total: 357
qcom-distro_linux-qcom-6.18
Pass: 238 | Fail: 0 | Total: 259
nodistro
Pass: 10 | Fail: 0 | Total: 10

@test-reporting-app

test-reporting-app Bot commented Aug 19, 2026 •

Copy link
Copy Markdown

Test Results

   68 files  ±0    319 suites  ±0   3h 53m 6s ⏱️ + 24m 32s
  149 tests  - 2    147 ✅ + 2   1 💤 +1  1 ❌  - 5 
2 100 runs  +1  2 078 ✅ +12  21 💤  - 6  1 ❌  - 5 

For more details on these failures, see this check.

Results for commit 8eb083a. ± Comparison against base commit cf53a39.

This pull request removes 2 tests.
lava ‑ boot-qdl-retry
lava ‑ reset-device

♻️ This comment has been updated with latest results.

@qcomlnxci

Copy link
Copy Markdown

Test Coral run workflow

Test jobs for commit a0d5c14

  • qcomdistro: multimedia image-prop
    Pass: 26 | Fail: 0 | Total: 26
  • qcomdistro: multimedia image
    Pass: 9 | Fail: 0 | Total: 9

Comment thread ci/gunyah.yml Outdated
Comment thread .github/workflows/build-yocto.yml Outdated
Comment thread conf/machine/include/fit-dtb-compatible-linux-qcom.inc Outdated
Comment thread .github/workflows/build-yocto.yml Outdated
Comment thread .github/workflows/build-yocto.yml
@vkraleti
Viswanath Kraleti (vkraleti) force-pushed the kodiak-kvm branch 2 times, most recently from c9890b0 to d3973df Compare August 20, 2026 10:55
@qcomlnxci

Copy link
Copy Markdown

Test Coral run workflow

Test jobs for commit d3973df

  • qcomdistro: multimedia image-prop
    Pass: 44 | Fail: 0 | Total: 44
  • qcomdistro: multimedia image
    Pass: 9 | Fail: 0 | Total: 9

@vkraleti

Copy link
Copy Markdown
Contributor Author

Dmitry Baryshkov (@lumag) Ricardo Salveti (@ricardosalveti) KVM enablement for QCS6490 is planned for the upcoming release, and we are running short on time to complete the full L4 test cycle. Could you please review this PR and let me know if you see any issues or required modifications?

As you are already aware, supporting both hypervisors is being tracked in another PR, on which we can continue discussions for a clean switching solution.

@lumag

Copy link
Copy Markdown
Contributor

KVM enablement for QCS6490 is planned for the upcoming release,

We have two different items here. KVM enablement and KVM being a default. Could we separate them? I don't think we require KVM being a default for completing L4 testing?

@vkraleti

Copy link
Copy Markdown
Contributor Author

KVM enablement for QCS6490 is planned for the upcoming release,

We have two different items here. KVM enablement and KVM being a default. Could we separate them? I don't think we require KVM being a default for completing L4 testing?

Commitment for Sep release is to switch to default KVM and perform complete L4 testing on KVM.

@lumag

Copy link
Copy Markdown
Contributor

KVM enablement for QCS6490 is planned for the upcoming release,

We have two different items here. KVM enablement and KVM being a default. Could we separate them? I don't think we require KVM being a default for completing L4 testing?

Commitment for Sep release is to switch to default KVM and perform complete L4 testing on KVM.

This means it must be implemented correctly. No shortcuts,

@vkraleti Viswanath Kraleti (vkraleti) changed the title Enable KVM by default on Rb3Gen2-Core-Kit and QCM6490-IDP Switch to KVM hypervisor on Rb3Gen2-Core-Kit and QCM6490-IDP Sep 1, 2026
@vkraleti

Copy link
Copy Markdown
Contributor Author

Dmitry Baryshkov (@lumag) Ricardo Salveti (@ricardosalveti) as discussed over the call with sahitya-tummala, I updated the commit messages in the current PR and also created #3052 to add Gunyah support in CI. Can you please review?

Comment thread conf/machine/include/fit-dtb-compatible-linux-qcom.inc Outdated
@qcomlnxci

Copy link
Copy Markdown

Test Coral run workflow

Test jobs for commit 44f5115

  • qcomdistro: multimedia image-prop
    Pass: 41 | Fail: 0 | Total: 41
  • qcomdistro: multimedia image
    Pass: 9 | Fail: 0 | Total: 9

@vkraleti

Copy link
Copy Markdown
Contributor Author

Dmitry Baryshkov (@lumag) Ricardo Salveti (@ricardosalveti) rebased on tip to resolve conflicts. Can you recheck?

The el2gh suffix selects the Gunyah hypervisor variant of a board's
compatible string, the same way el2kvm selects the KVM variant. Like
camx and staging, it is a feature/hypervisor selector rather than board
metadata, so it has no corresponding node in qcom-metadata.dtb.

test_fitimage_compatible_metadata_validation validates every
dash-separated suffix of the generated ITS compatible strings against
the metadata node names, and so already fails today on the pre-existing
el2gh entries in fit-dtb-compatible-linux-qcom.inc. Add el2gh to the
skip set to match the metadata-check script's blacklist, and to
COMPAT_EXTENSIONS so the unit-level fixtures stay in sync.

Signed-off-by: Viswanath Kraleti <viswanath.kraleti@oss.qualcomm.com>
KVM is the preffered hypervisor for Qualcomm Linux SoCs. Gunyah was
used as an interim solution till KVM is fully functional. Now that
KVM support on Rb3Gen2 Core Kit has been validated, it no longer
requires Gunyah as an interim solution.

Add 'kvm' to MACHINE_FEATURES so that the KVM-specific XBL configuration
is selected during boot. This switches the default hypervisor to KVM and
aligns Rb3Gen2 Core Kit with IQ-615-EVK, IQ-8275-EVK, and IQ-9075-EVK.

Signed-off-by: Viswanath Kraleti <viswanath.kraleti@oss.qualcomm.com>
KVM is the preffered hypervisor for Qualcomm Linux SoCs. Gunyah was
used as an interim solution till KVM is fully functional. Now that
KVM support on QCM6490-IDP has been validated, it no longer requires
Gunyah as an interim solution.

Add 'kvm' to MACHINE_FEATURES so that the KVM-specific XBL configuration
is selected during boot. This switches the default hypervisor to KVM and
aligns QCM6490-IDP with IQ-615-EVK, IQ-8275-EVK, and IQ-9075-EVK.

Signed-off-by: Viswanath Kraleti <viswanath.kraleti@oss.qualcomm.com>
Kodiak FIT_DTB_COMPATIBLE entries currently use el2kvm-suffixed compatible
strings to load el2.dtbo for KVM. Entries without any el2 suffix
implicitly meant Gunyah.

As KVM is the default hypervisor now, rename the kodiak entries to match:
drop the -el2kvm suffix from the entries that select kodiak-el2.dtbo, and
append -el2gh to the sibling entries that don't, so the unsuffixed
compatible string is KVM by default.

Signed-off-by: Viswanath Kraleti <viswanath.kraleti@oss.qualcomm.com>
The kodiak entries were renamed so the unsuffixed compatible string is
KVM by default and an -el2gh suffix marks the Gunyah variant, but no
-el2gh entry existed for the plain (no -staging, no -camx) combos, so
those boards had no way to select the Gunyah DTB without kodiak-el2.

Add the missing -el2gh entries for qcm6490-idp, qcs5430-iot,
qcs6490-iot, and their subtype2/subtype9 variants.

Signed-off-by: Viswanath Kraleti <viswanath.kraleti@oss.qualcomm.com>
The kodiak "-staging" FIT_DTB_COMPATIBLE entries carried no hypervisor
overlay, unlike their non-staging counterparts, which were switched to
default to the kvm hypervisor in a previous commit. Append "kodiak-el2"
to the "-staging" entries' values so they default to kvm as well,
consistent with the rest of the kodiak entries.

Signed-off-by: Viswanath Kraleti <viswanath.kraleti@oss.qualcomm.com>
The rb3gen2-core-kit-open-fw machine inherit base rb3gen2-core-kit
machine configuration which now has 'kvm' by default. The KAS
fragment it was using to inject 'kvm' is therefore redundant, so
switch the CI entry from qcom-distro-kvm to qcom-distro.

Signed-off-by: Viswanath Kraleti <viswanath.kraleti@oss.qualcomm.com>
KVM is now enabled by default on Rb3Gen2-Core-Kit, making the
dedicated KVM build is redundent.

Signed-off-by: Viswanath Kraleti <viswanath.kraleti@oss.qualcomm.com>

@lumag Dmitry Baryshkov (lumag) left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks!

@ricardosalveti

Copy link
Copy Markdown
Contributor

Known test failures.

@ricardosalveti
Ricardo Salveti (ricardosalveti) merged commit 30af9dd into qualcomm-linux:master Sep 17, 2026
209 of 210 checks passed
@quic-yocto-ci

Copy link
Copy Markdown
Contributor

Git push to origin failed for wrynose with exitcode 1

@qcomlnxci

Copy link
Copy Markdown

Test Coral run workflow

Test jobs for commit 17ba272

  • qcomdistro: multimedia image-prop
    Pass: 23 | Fail: 0 | Total: 23
  • qcomdistro: multimedia image
    Pass: 9 | Fail: 0 | Total: 9

@qcomlnxci

Copy link
Copy Markdown

Test Coral run workflow

Test jobs for commit d26a0cc

  • qcomdistro: multimedia image
    Pass: 9 | Fail: 0 | Total: 9
  • qcomdistro: multimedia image-prop
    Pass: 39 | Fail: 1 | Others: 1 | Total: 41

@qcomlnxci

Copy link
Copy Markdown

Test Coral run workflow

Test jobs for commit 8eb083a

  • qcomdistro: multimedia image
    Pass: 9 | Fail: 0 | Total: 9
  • qcomdistro: multimedia image-prop
    Pass: 38 | Fail: 3 | Total: 41

Ricardo Salveti (ricardosalveti) added a commit that referenced this pull request Sep 18, 2026
Follow up to #2879. Three small fixes to the kodiak compatible strings
now that kvm is the default hypervisor.

qcs6490-iot subtype13 was the only kodiak combo left without kodiak-el2,
since it only exists in the base fit-dtb-compatible.inc, so that board
boots without the EL2 fixups while running the kvm xbl_config.

The Gunyah entries for the kodiak camx staging combos ended up as
-camx-el2gh-staging, while qcs615, qcs8275, qcs8300, qcs9075 and
sa8775p-qam-r2.0 all use -el2gh-camx-staging. The last commit fixes the
same outlier on sa8775p-qam, which was raised during the review of
#2879.
Ricardo Salveti (ricardosalveti) added a commit that referenced this pull request Sep 19, 2026
…CM6490-IDP (#3189)

# Description
Backport of #2879 to
`wrynose`.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants