Skip to content

iq-x7181-evk: add x1 el2 DTBO building and FIT DTB mapping#2234

Open
Xinzheng Long (xinlon-z) wants to merge 2 commits into
qualcomm-linux:masterfrom
xinlon-z:hamoa-kvm-fit-dtb
Open

iq-x7181-evk: add x1 el2 DTBO building and FIT DTB mapping#2234
Xinzheng Long (xinlon-z) wants to merge 2 commits into
qualcomm-linux:masterfrom
xinlon-z:hamoa-kvm-fit-dtb

Conversation

@xinlon-z

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

Copy link
Copy Markdown
Contributor

KVM support on IQ-X7181 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.

Generated ITS file overview

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

/ {
        description = "Kernel fitImage for Qualcomm Linux Reference Distro/7.0+git/iq-x7181-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/hamoa_mainline/build/tmp/work/iq_x7181_evk-qcom-linux/linux-qcom-next/7.0+git/linux-qcom-next-7.0+git/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/hamoa_mainline/build/tmp/work/iq_x7181_evk-qcom-linux/linux-qcom-next/7.0+git/linux-qcom-next-7.0+git/arch/arm64/boot/dts/qcom/x1-el2.dtbo");
                        arch = "arm64";
                };
                fdt-hamoa-iot-evk.dtb {
                        description = "Flattened Device Tree blob";
                        type = "flat_dt";
                        compression = "none";
                        data = /incbin/("/local/mnt/workspace/xinlon/work/hamoa_mainline/build/tmp/work/iq_x7181_evk-qcom-linux/linux-qcom-next/7.0+git/linux-qcom-next-7.0+git/arch/arm64/boot/dts/qcom/hamoa-iot-evk.dtb");
                        arch = "arm64";
                };
                fdt-hamoa-evk-camx.dtbo {
                        description = "Flattened Device Tree blob";
                        type = "flat_dt";
                        compression = "none";
                        data = /incbin/("/local/mnt/workspace/xinlon/work/hamoa_mainline/build/tmp/work/iq_x7181_evk-qcom-linux/linux-qcom-next/7.0+git/linux-qcom-next-7.0+git/arch/arm64/boot/dts/qcom/hamoa-evk-camx.dtbo");
                        arch = "arm64";
                };
                fdt-hamoa-iot-evk-camera-imx577.dtbo {
                        description = "Flattened Device Tree blob";
                        type = "flat_dt";
                        compression = "none";
                        data = /incbin/("/local/mnt/workspace/xinlon/work/hamoa_mainline/build/tmp/work/iq_x7181_evk-qcom-linux/linux-qcom-next/7.0+git/linux-qcom-next-7.0+git/arch/arm64/boot/dts/qcom/hamoa-iot-evk-camera-imx577.dtbo");
                        arch = "arm64";
                };
        };
        configurations {
                conf-1 {
                        description = "FDT Blob";
                        fdt = "fdt-hamoa-iot-evk.dtb", "fdt-hamoa-iot-evk-camera-imx577.dtbo";
                        compatible = "qcom,hamoa-evk";
                };
                conf-2 {
                        description = "FDT Blob";
                        fdt = "fdt-hamoa-iot-evk.dtb", "fdt-hamoa-iot-evk-camera-imx577.dtbo", "fdt-x1-el2.dtbo";
                        compatible = "qcom,hamoa-evk-el2kvm";
                };
                conf-3 {
                        description = "FDT Blob";
                        fdt = "fdt-hamoa-iot-evk.dtb", "fdt-hamoa-evk-camx.dtbo";
                        compatible = "qcom,hamoa-evk-camx";
                };
        };
};

Related PR: qualcomm-linux/qcom-dtb-metadata#89

KVM Boot log:

root@iq-x7181-evk:~# dmesg | grep kvm
[    0.093554] kvm [1]: nv: 570 coarse grained trap handlers
[    0.093691] kvm [1]: nv: 710 fine grained trap handlers
[    0.093775] kvm [1]: IPA Size Limit: 44 bits
[    0.093785] kvm [1]: GICv4 support disabled
[    0.093786] kvm [1]: GICv3: no GICV resource entry
[    0.093786] kvm [1]: disabling GICv2 emulation
[    0.093801] kvm [1]: GIC system register CPU interface enabled
[    0.093807] kvm [1]: vgic interrupt IRQ9
[    0.093830] kvm [1]: Broken CNTVOFF_EL2, trapping virtual timer
[    0.093835] kvm [1]: VHE mode initialized successfully
root@iq-x7181-evk:~# ls -alh /dev/kvm
crw-rw-rw- 1 root kvm 10, 232 Mar 13 15:35 /dev/kvm

@xinlon-z Xinzheng Long (xinlon-z) marked this pull request as ready for review May 19, 2026 10:29
@xinlon-z Xinzheng Long (xinlon-z) changed the title fit-dtb-compatible: add el2 DTBO mapping for IQ-X7181 Evaluation Kit iq-x7181-evk: add x1 el2 DTBO building and mapping for IQ-X7181 Evaluation Kit May 19, 2026
@xinlon-z Xinzheng Long (xinlon-z) changed the title iq-x7181-evk: add x1 el2 DTBO building and mapping for IQ-X7181 Evaluation Kit iq-x7181-evk: add x1 el2 DTBO building and FIT DTB mapping May 19, 2026
@xinlon-z Xinzheng Long (xinlon-z) marked this pull request as draft May 19, 2026 11:34
@github-actions

Copy link
Copy Markdown

Test run workflow

Test jobs for commit c63d267

qcom-distro
Pass: 261 | Fail: 1 | Total: 285
nodistro
Pass: 9 | Fail: 0 | Total: 9
qcom-distro_linux-qcom-6.18
Pass: 219 | Fail: 2 | Total: 247

@test-reporting-app

test-reporting-app Bot commented May 19, 2026

Copy link
Copy Markdown

Test Results

  103 files  +   34    628 suites  +272   6h 47m 42s ⏱️ + 3h 31m 32s
  132 tests +    5     96 ✅  -     8   2 💤 + 2  34 ❌ +11 
5 962 runs  +2 612  5 836 ✅ +2 557  84 💤 +41  42 ❌ +14 

For more details on these failures, see this check.

Results for commit 6e835a4. ± Comparison against base commit 28629bd.

♻️ This comment has been updated with latest results.

@github-actions

Copy link
Copy Markdown

Test run workflow

Test jobs for commit cf1560f

qcom-distro
Pass: 8 | Fail: 1 | Total: 9
nodistro
Pass: 9 | Fail: 0 | Total: 9
qcom-distro_linux-qcom-6.18
Pass: 200 | Fail: 1 | Total: 227

@github-actions

Copy link
Copy Markdown

Test run workflow

Test jobs for commit cf1560f

qcom-distro
Pass: 247 | Fail: 1 | Total: 263
nodistro
Pass: 9 | Fail: 0 | Total: 9
qcom-distro_linux-qcom-6.18
Pass: 222 | Fail: 1 | Total: 249

auto-merge was automatically disabled May 25, 2026 07:31

Head branch was pushed to by a user without write access

@github-actions

Copy link
Copy Markdown

Test run workflow

Test jobs for commit 589e7d8

qcom-distro
Pass: 8 | Fail: 1 | Total: 9
nodistro
Pass: 9 | Fail: 0 | Total: 9
qcom-distro_linux-qcom-6.18
Pass: 214 | Fail: 3 | Total: 245

@github-actions

Copy link
Copy Markdown

Test run workflow

Test jobs for commit 589e7d8

qcom-distro
Pass: 257 | Fail: 0 | Total: 278
nodistro
Pass: 9 | Fail: 0 | Total: 9
qcom-distro_linux-qcom-6.18
Pass: 220 | Fail: 3 | Total: 249

@github-actions

Copy link
Copy Markdown

Test run workflow

Test jobs for commit 589e7d8

qcom-distro
Pass: 272 | Fail: 0 | Total: 296
nodistro
Pass: 9 | Fail: 0 | Total: 9
qcom-distro_linux-qcom-6.18
Pass: 220 | Fail: 3 | Total: 249

@github-actions

Copy link
Copy Markdown

Test run workflow

Test jobs for commit 589e7d8

qcom-distro_linux-qcom-6.18
Pass: 228 | Fail: 3 | Total: 249
qcom-distro
Pass: 266 | Fail: 3 | Total: 296
nodistro
Pass: 9 | Fail: 0 | Total: 9

@ricardosalveti

Copy link
Copy Markdown
Contributor

Do we need this for wrynose?

@xinlon-z

Copy link
Copy Markdown
Contributor Author

Please rebase and adjust your changes based on #2305.

Done, rebased to the latest FIT DTB config format

Comment thread conf/machine/iq-x7181-evk.conf
Dmitry Baryshkov (lumag) added a commit that referenced this pull request Jun 3, 2026
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

rebased to latest commit

@github-actions

github-actions Bot commented Jun 4, 2026

Copy link
Copy Markdown

Test run workflow

Test jobs for commit 3d8b72f

qcom-distro_linux-qcom-6.18
Pass: 201 | Fail: 1 | Total: 244
qcom-distro
Pass: 241 | Fail: 3 | Total: 291
nodistro
Pass: 9 | Fail: 0 | Total: 9

@github-actions

github-actions Bot commented Jun 4, 2026

Copy link
Copy Markdown

Test run workflow

Test jobs for commit 3d8b72f

qcom-distro_linux-qcom-6.18
Pass: 201 | Fail: 1 | Total: 244
qcom-distro
Pass: 250 | Fail: 3 | Total: 296
nodistro
Pass: 9 | Fail: 0 | Total: 9

@github-actions

github-actions Bot commented Jun 5, 2026

Copy link
Copy Markdown

Test run workflow

Test jobs for commit 3d8b72f

qcom-distro_linux-qcom-6.18
Pass: 204 | Fail: 0 | Total: 244
qcom-distro
Pass: 249 | Fail: 4 | Total: 296
nodistro
Pass: 9 | Fail: 0 | Total: 9

@lumag

Copy link
Copy Markdown
Contributor

This should be merged after #2082

auto-merge was automatically disabled June 17, 2026 10:46

Head branch was pushed to by a user without write access

@xinlon-z

Copy link
Copy Markdown
Contributor Author

This should be merged after #2082

hi Ricardo Salveti (@ricardosalveti) Dmitry Baryshkov (@lumag) , I noticed that PR #2082 has already been closed. Could this PR be merged first?

@github-actions

Copy link
Copy Markdown

Test run workflow

Test jobs for commit 480c7ac

nodistro
Pass: 9 | Fail: 0 | Total: 9
qcom-distro_linux-qcom-6.18
Pass: 139 | Fail: 24 | Total: 245
qcom-distro
Pass: 246 | Fail: 2 | Total: 297

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

We can't switch yet to FIT DTB mapping. The dtb.bin is a part of SPI NOR and it is not being reflashed because of the issue on the LAVA side (the fix is only a part of the unreleased QDL). We are waiting for it to be fixed. Until then, the FIT DTB needs to be disabled for IQ-X7181 EVK.

@github-actions

Copy link
Copy Markdown

Test run workflow

Test jobs for commit 480c7ac

nodistro
Pass: 9 | Fail: 0 | Total: 9
qcom-distro_linux-qcom-6.18
Pass: 139 | Fail: 27 | Total: 250
qcom-distro
Pass: 248 | Fail: 0 | Total: 297

@bhargav0610

Copy link
Copy Markdown

Pls comiple a fresh build and invoke testing

KVM support on iq-x7181-evk requires the X1 EL2 DTBO. To
support this enable EL2 DTB overlay generation on kernel DT list.

Signed-off-by: Xinzheng Long <xinzheng.long@oss.qualcomm.com>
KVM support on iq-x7181-evk requires the X1 EL2 DTBO. To
support this enable EL2 DTB overlay generation on kernel DT list.

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

Copy link
Copy Markdown
Contributor Author

releted-PR: #2349

@github-actions

Copy link
Copy Markdown

Test run workflow

Test jobs for commit 6e835a4

nodistro
Pass: 9 | Fail: 0 | Total: 9
qcom-distro_linux-qcom-6.18
Pass: 206 | Fail: 0 | Total: 244
qcom-distro
Pass: 226 | Fail: 2 | Total: 270

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.

5 participants