IPU4 driver — current state

Out-of-tree IPU6-derived driver + QEMU dev/test harness. Pinned to Linux v6.12.

Last updated · commit 5f08b80 · repository

CI status

Build
success
27d ago · 14m38s
ci
success
1d ago · 6m03s
vm-smoke-weekly
success
2d ago · 13m15s
vm-smoke
success
1d ago · 12m09s
pages-build-deployment
success
7d ago · 51s

Code coverage

lines
58.0%
2159 / 3723
functions
70.4%
181 / 257

Browse the full lcov report →

MMIO divergence (silicon vs QEMU)

unimplemented
0
silicon-touched, QEMU silent
value mismatch
13
read divergence
extra in QEMU
8
benign / informational

silicon: 1088 accesses · qemu: 651 accesses · full report.txt →

Register coverage (43 handlers in hw/misc/ipu4.c)

doc
0
inferred
37
guess
6
Show register table
OffsetBlockDriver callerConfidence
0x008 Buttress ipu6-buttress.c WDT kick inferred
0x00c Buttress ipu6-buttress.c BTRS_CTRL inferred
0x030 Buttress ipu6-buttress.c FW_RESET_CTL inferred
0x034 Buttress ipu6-buttress.c IS_FREQ_CTL inferred
0x038 Buttress ipu6-buttress.c PS_FREQ_CTL inferred
0x05c Buttress ipu6-buttress.c PWR_STATE poll inferred
0x078 Buttress ipu6-buttress.c FW_SOURCE_BASE_LO inferred
0x07c Buttress ipu6-buttress.c FW_SOURCE_BASE_HI inferred
0x080 Buttress ipu6-buttress.c FW_SOURCE_SIZE inferred
0x088 Buttress ipu6-buttress.c FABRIC_CMD inferred
0x090 Buttress ipu6-buttress.c ISR_STATUS inferred
0x094 Buttress ipu6-buttress.c ISR_ENABLED_STATUS inferred
0x098 Buttress ipu6-buttress.c ISR_ENABLE inferred
0x09c Buttress ipu6-buttress.c ISR_CLEAR inferred
0x100 CSE IPC ipu6-buttress.c IU2CSEDB0 inferred
0x104 CSE IPC ipu6-buttress.c IU2CSEDATA0 inferred
0x108 CSE IPC ipu6-buttress.c IU2CSECSR inferred
0x164 Buttress ipu6-buttress.c TSC_LO inferred
0x168 Buttress ipu6-buttress.c TSC_HI inferred
0x300 Buttress ipu6-buttress.c SECURITY_CTL inferred
0x304 CSE IPC ipu6-buttress.c CSE2IUDB0 inferred
0x308 CSE IPC ipu6-buttress.c CSE2IUDATA0 inferred
0x30c CSE IPC ipu6-buttress.c CSE2IUCSR inferred
0x314 Buttress ipu6-buttress.c SKU guess
0x17c000 ISYS ipu6-isys.c unispart IRQ_EDGE inferred
0x17c004 ISYS ipu6-isys.c unispart IRQ_MASK inferred
0x17c008 ISYS ipu6-isys.c unispart IRQ_STATUS inferred
0x17c00c ISYS ipu6-isys.c unispart IRQ_CLEAR inferred
0x17c010 ISYS ipu6-isys.c unispart IRQ_ENABLE inferred
0x17c014 ISYS ipu6-isys.c unispart IRQ_LEVEL_NOT_PULSE inferred
0x17c414 ISYS ipu6-isys.c unispart SW_IRQ inferred
0x17c418 ISYS ipu6-isys.c unispart SW_IRQ_MUX inferred
0x64000-0x64fff CSI2 port 0 ipu6-isys-csi2.c per-port block inferred
0x65000-0x65fff CSI2 port 1 ipu6-isys-csi2.c per-port block guess
0x66000-0x66fff CSI2 port 2 ipu6-isys-csi2.c per-port block guess
0x67000-0x67fff CSI2 port 3 ipu6-isys-csi2.c per-port block guess
0x6c000-0x6c7ff CSI2 port 4 ipu6-isys-csi2.c per-port block guess
0x6c800-0x6cfff CSI2 port 5 ipu6-isys-csi2.c per-port block guess
0x100000 ISYS ipu6-fw-isys.c ISYS SPC_STATUS_CTRL inferred
0x108000-0x1080ff ISYS ipu6-fw-com.c DMEM syscom window inferred
0x400000 PSYS ipu6-fw-isys.c PSYS SPC_STATUS_CTRL inferred
0x1e0000-0x1e04ff MMU ipu6-mmu.c ISYS MMU page-table window inferred
0x4b0000-0x4b09ff MMU ipu6-mmu.c PSYS MMU page-table window inferred

Upstream divergence (kernel/ipu4 vs IPU6)

Upstream pin: v6.12.87 · 29 files differ · 267 hunks · +1850 / −584 lines

Upstream-watch state

0 patch-ids deduped to date

Milestones

  1. M0 in-tree migration done
  2. M1 KUnit tier done
  3. M2 QEMU skeleton + VM boot done
  4. M3 probe progresses to firmware load done
  5. M4 firmware synthesized, probe reaches bridge init done
  6. M4.5 virt-sensor bridge bypass done
  7. M5a probe completes, /dev/video* appears done
  8. M5b streaming-smoke baseline done
  9. M5b-3 CSI2 active route auto-installed on sensor bind done
  10. M5c-4 gcov harvest + lcov HTML done
  11. M5c-3 deterministic frame pattern + verifier done
  12. M5c-2 software streaming path, STREAMON and DQBUF green done
  13. M5c-1 graceful STREAMON short-circuit when there's no firmware done
  14. M5b-5 streamon uses BGR24 so link_validate passes done
  15. M5b-4 fix video-entity lookup so the right link gets enabled done
  16. M5c frame delivery + e2e done
  17. M7 6.18 leg done
  18. M8 mainline leg in progress