Skip to content

iq-x5121-evk: add x1 el2 DTBO building and FIT DTB mapping#2248

Merged
Dmitry Baryshkov (lumag) merged 2 commits into
qualcomm-linux:masterfrom
xinlon-z:purwa-kvm-fit-dtb
Jun 3, 2026
Merged

iq-x5121-evk: add x1 el2 DTBO building and FIT DTB mapping#2248
Dmitry Baryshkov (lumag) merged 2 commits into
qualcomm-linux:masterfrom
xinlon-z:purwa-kvm-fit-dtb

Conversation

@xinlon-z

@xinlon-z Xinzheng Long (xinlon-z) commented May 20, 2026

Copy link
Copy Markdown
Contributor

KVM support on IQ-X5121 Evaluation Kit requires applying the el2 DTBO at boot. Add FIT_DTB_COMPATIBLE entries to allow UEFI to correctly match and apply the x1-el2.dtbo(shared the same one with IQ-X7181 #2234 ) overlay when booting with KVM.

Generated ITS file overview

$ cat build/tmp/deploy/images/iq-x5121-evk/qclinux-fit-image.its
/dts-v1/;

/ {
        description = "Kernel fitImage for Qualcomm Linux Reference Distro/7.0+git/iq-x5121-evk";
        #address-cells = <1>;
        images {
                fdt-qcom-metadata.dtb {
                        description = "Flattened Device Tree blob";
                        type = "qcom_metadata";
                        compression = "none";
                        data = /incbin/("/local/mnt/workspace/xinlon/work/purwa-mainline/build/tmp/work/iq_x5121_evk-qcom-linux/linux-qcom-next/7.0+git/build/arch/arm64/boot/dts/qcom/qcom-metadata.dtb");
                        arch = "arm64";
                };
                fdt-x1-el2.dtbo {
                        description = "Flattened Device Tree blob";
                        type = "flat_dt";
                        compression = "none";
                        data = /incbin/("/local/mnt/workspace/xinlon/work/purwa-mainline/build/tmp/work/iq_x5121_evk-qcom-linux/linux-qcom-next/7.0+git/build/arch/arm64/boot/dts/qcom/x1-el2.dtbo");
                        arch = "arm64";
                };
                fdt-purwa-iot-evk.dtb {
                        description = "Flattened Device Tree blob";
                        type = "flat_dt";
                        compression = "none";
                        data = /incbin/("/local/mnt/workspace/xinlon/work/purwa-mainline/build/tmp/work/iq_x5121_evk-qcom-linux/linux-qcom-next/7.0+git/build/arch/arm64/boot/dts/qcom/purwa-iot-evk.dtb");
                        arch = "arm64";
                };
        };
        configurations {
                conf-1 {
                        description = "FDT Blob";
                        fdt = "fdt-purwa-iot-evk.dtb";
                        compatible = "qcom,purwa-evk";
                };
                conf-2 {
                        description = "FDT Blob";
                        fdt = "fdt-purwa-iot-evk.dtb", "fdt-x1-el2.dtbo";
                        compatible = "qcom,purwa-evk-el2kvm";
                };
        };
};

KVM Boot log:

root@iq-x5121-evk:~# dmesg | grep kvm
[    0.092851] kvm [1]: nv: 570 coarse grained trap handlers
[    0.092985] kvm [1]: nv: 710 fine grained trap handlers
[    0.093060] kvm [1]: IPA Size Limit: 44 bits
[    0.093071] kvm [1]: GICv4 support disabled
[    0.093072] kvm [1]: GICv3: no GICV resource entry
[    0.093073] kvm [1]: disabling GICv2 emulation
[    0.093088] kvm [1]: GIC system register CPU interface enabled
[    0.093100] kvm [1]: vgic interrupt IRQ9
[    0.093119] kvm [1]: Broken CNTVOFF_EL2, trapping virtual timer
[    0.093123] kvm [1]: VHE mode initialized successfully
root@iq-x5121-evk:~# ls -alh /dev/kvm
crw-rw-rw- 1 root kvm 10, 232 Mar 13 15:35 /dev/kvm

Pending by issue: #1962

@xinlon-z

Copy link
Copy Markdown
Contributor Author

This PR depends on PR #2165 being merged to resolve issue #1962.

@xinlon-z Xinzheng Long (xinlon-z) marked this pull request as draft May 25, 2026 07:13
@xinlon-z Xinzheng Long (xinlon-z) force-pushed the purwa-kvm-fit-dtb branch 2 times, most recently from 4aca6e3 to 203e822 Compare May 26, 2026 11:09
@xinlon-z Xinzheng Long (xinlon-z) marked this pull request as ready for review May 26, 2026 11:09
KVM support on iq-x5121-evk requires the X1 EL2 DTBO, which is shared with iq-x7181-evk.
To support this, enable EL2 DTBO generation in the kernel DT list.

Signed-off-by: Xinzheng Long <xinzheng.long@oss.qualcomm.com>
@xinlon-z Xinzheng Long (xinlon-z) force-pushed the purwa-kvm-fit-dtb branch 2 times, most recently from 100e143 to fa18d35 Compare June 1, 2026 11:59

@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.

AssertionError: Duplicate FIT_DTB_COMPATIBLE keys:
'qcom_purwa-evk' in fit-dtb-compatible.inc defined at lines: 34, 48

KVM support on IQ-X5121 Evaluation Kit requires applying the el2 DTBO at boot.
Add FIT_DTB_COMPATIBLE entries to allow UEFI to correctly match and apply
the `x1-el2.dtbo` overlay when booting with KVM.

Signed-off-by: Xinzheng Long <xinzheng.long@oss.qualcomm.com>
@xinlon-z

Copy link
Copy Markdown
Contributor Author

AssertionError: Duplicate FIT_DTB_COMPATIBLE keys:
'qcom_purwa-evk' in fit-dtb-compatible.inc defined at lines: 34, 48

fixed in the latest commit

@test-reporting-app

test-reporting-app Bot commented Jun 2, 2026

Copy link
Copy Markdown

Test Results

  103 files  +   44    632 suites  +351   5h 0m 51s ⏱️ + 2h 9m 8s
  125 tests +   20    125 ✅ +   28   0 💤  -  2  0 ❌  - 6 
6 023 runs  +3 377  5 977 ✅ +3 356  46 💤 +27  0 ❌  - 6 

Results for commit 1ec4dd5. ± Comparison against base commit 79d0169.

This pull request removes 2 and adds 22 tests. Note that renamed tests count towards both.
lava ‑ auto-login-action
lava ‑ minimal-boot
10_Kubernetes_Kernel_Config ‑ Kubernetes_Kernel_Config
11_Logging_Journalctl_Validation ‑ Logging_Journalctl_Validation
12_Partition_PostBoot_Validation ‑ Partition_PostBoot_Validation
13_Boot_Systemd_KPI_Loop ‑ Boot_Systemd_KPI_Loop
5_OpenCV ‑ OpenCV
6_OpenCV ‑ OpenCV
6_irq ‑ irq
7_BT_ON_OFF ‑ BT_ON_OFF
7_irq ‑ irq
8_AudioRecord ‑ AudioRecord
…

♻️ This comment has been updated with latest results.

@github-actions

github-actions Bot commented Jun 3, 2026

Copy link
Copy Markdown

Test run workflow

Test jobs for commit 1ec4dd5

qcom-distro_linux-qcom-6.18
Pass: 222 | Fail: 2 | Total: 249
qcom-distro
Pass: 275 | Fail: 1 | Total: 296
nodistro
Pass: 9 | Fail: 0 | Total: 9

1 similar comment
@github-actions

github-actions Bot commented Jun 3, 2026

Copy link
Copy Markdown

Test run workflow

Test jobs for commit 1ec4dd5

qcom-distro_linux-qcom-6.18
Pass: 222 | Fail: 2 | Total: 249
qcom-distro
Pass: 275 | Fail: 1 | Total: 296
nodistro
Pass: 9 | Fail: 0 | Total: 9

@lumag Dmitry Baryshkov (lumag) merged commit 6b09e37 into qualcomm-linux:master Jun 3, 2026
254 checks passed
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.

3 participants