Skip to content

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

Open
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
xinlon-z wants to merge 2 commits into
qualcomm-linux:masterfrom
xinlon-z:hamoa-kvm-fit-dtb

Conversation

@xinlon-z
Copy link
Copy Markdown
Contributor

@xinlon-z xinlon-z commented May 19, 2026

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 xinlon-z force-pushed the hamoa-kvm-fit-dtb branch from dab0278 to c63d267 Compare May 19, 2026 10:13
@xinlon-z xinlon-z marked this pull request as ready for review May 19, 2026 10:29
@xinlon-z 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 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 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
Copy link
Copy Markdown

test-reporting-app Bot commented May 19, 2026

Test Results

  103 files  ±0    633 suites  +1   5h 2m 57s ⏱️ - 9m 32s
  127 tests ±0    123 ✅ + 8   0 💤 ± 0  4 ❌  - 8 
6 024 runs  +3  5 973 ✅ +23  45 💤  - 12  6 ❌  - 8 

For more details on these failures, see this check.

Results for commit 589e7d8. ± Comparison against base commit 3ea9e9e.

This pull request removes 2 and adds 2 tests. Note that renamed tests count towards both.
lava ‑ auto-login-action
lava ‑ minimal-boot
2_Interru[ ‑ Interrupts
lava ‑ 3_AudioRecord_Config07[

♻️ This comment has been updated with latest results.

@xinlon-z xinlon-z marked this pull request as ready for review May 22, 2026 11:31
@xinlon-z xinlon-z force-pushed the hamoa-kvm-fit-dtb branch from c63d267 to cf1560f Compare May 22, 2026 11:35
@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

@lumag lumag enabled auto-merge May 22, 2026 16:58
@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

@xinlon-z xinlon-z force-pushed the hamoa-kvm-fit-dtb branch from cf1560f to 589e7d8 Compare May 25, 2026 07:31
lumag
lumag previously approved these changes May 25, 2026
@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

vkraleti
vkraleti previously approved these changes May 29, 2026
@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?

ricardosalveti
ricardosalveti previously approved these changes May 29, 2026
@xinlon-z
Copy link
Copy Markdown
Contributor Author

xinlon-z commented May 30, 2026

Do we need this for wrynose?

I think it is needed, and the x1-el2.dtso has already been upstreamed.

@ricardosalveti
Copy link
Copy Markdown
Contributor

Please rebase and adjust your changes based on #2305.

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 xinlon-z dismissed stale reviews from ricardosalveti, vkraleti, and lumag via 56c8e5f June 1, 2026 08:57
@xinlon-z xinlon-z force-pushed the hamoa-kvm-fit-dtb branch from 589e7d8 to 56c8e5f Compare June 1, 2026 08:57
@xinlon-z
Copy link
Copy Markdown
Contributor Author

xinlon-z commented Jun 1, 2026

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
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 xinlon-z force-pushed the hamoa-kvm-fit-dtb branch from 56c8e5f to 56b9a3e Compare June 1, 2026 11:34
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.

4 participants