Skip to content

I2c target support - #920

Open
vdadhani wants to merge 2 commits into
qualcomm-linux:qcom-6.18.yfrom
vdadhani:i2c-target-support
Open

I2c target support#920
vdadhani wants to merge 2 commits into
qualcomm-linux:qcom-6.18.yfrom
vdadhani:i2c-target-support

Conversation

@vdadhani

@vdadhani vdadhani commented Aug 7, 2026

Copy link
Copy Markdown

CRs-Fixed: 4637378

QDU1000 and related Qualcomm SoCs include a dedicated I2C target
controller that operates exclusively in target mode. It is a distinct
IP from the Qualcomm I2C master controllers (GENI, QUP) with a
different register interface, so it requires its own binding.

Document the MMIO region, interrupt, XO and AHB clocks, interconnect
path, and optional pinctrl states for the controller.

Link: https://lore.kernel.org/all/20260802-i2c-qcom-slave-v2-1-27653118fa75@oss.qualcomm.com/
Signed-off-by: Viken Dadhaniya <viken.dadhaniya@oss.qualcomm.com>
@qswat-orbit-external

Copy link
Copy Markdown

Merge Check Failed: CR Not Eligible for Merge

CR 4637378 is not eligible for merge.

The parent software image for kernel.qli.2.0 is not development complete.

Entity: kernel.qli.2.0
CR: 4637378
Reason: CR_CANNOT_MERGE

Please ensure the CR passes both CCT (ComponentChangeTasks) and ICT (Integration Change Tasks) validations.

@qlijarvis

Copy link
Copy Markdown

PR #920 — validate-patch

PR: #920

Verdict Issues Detailed Report
⚠️ 1 Full report

Final Summary

  1. Lore link present: Yes — both commits link to the v2 series posted Aug 2, 2026
  2. Lore link matches PR commits: Yes — diff content is identical; commit messages faithfully reproduce upstream; minor formatting issue with Link: tag in commit 2/2
  3. Upstream patch status: In review — v2 series posted Aug 2, 2026; active discussion with DT maintainer; no formal acceptance yet; FROMLIST: prefix is correct
  4. PR present in qcom-next/topics: Yes - all 2 commit(s) are present in qcom-next or topics
Verdict: ⚠️ — click to expand

🔍 Patch Validation

PR: #920 - Add Qualcomm I2C target controller driver (2 commits)
Upstream commit: https://lore.kernel.org/all/20260802-i2c-qcom-slave-v2-0-27653118fa75@oss.qualcomm.com/
Verdict: ⚠️ PARTIAL

Commit Message

Check Status Note
Subject matches upstream Both commits correctly prefixed with FROMLIST:
Body preserves rationale Commit messages faithfully reproduce upstream content
Fixes tag present/correct N/A New feature, no Fixes tag required
Authorship preserved From: matches lore author (Viken Dadhaniya) for both commits
Backport note (if applicable) N/A FROMLIST: prefix used correctly for patches under review
Link tag format ⚠️ Patch 1/2 uses Link: prefix correctly; patch 2/2 missing Link: prefix (bare URL)

Diff

File Status Notes
Documentation/devicetree/bindings/i2c/qcom,i2c-target.yaml Identical to lore patch v2 1/2
drivers/i2c/busses/i2c-qcom-target.c Identical to lore patch v2 2/2
drivers/i2c/busses/Kconfig Identical to lore patch v2 2/2
drivers/i2c/busses/Makefile Identical to lore patch v2 2/2
MAINTAINERS Identical to lore patch v2 2/2

Upstream Patch Status

Commit Community Verdict
[PATCH v2 1/2] dt-bindings: i2c: Add Qualcomm I2C target controller ⏳ Decision Pending — posted Aug 2, 2026; v2 series under active review; replies from Krzysztof Kozlowski (DT maintainer) and others; no Reviewed-by/Acked-by tags yet
[PATCH v2 2/2] i2c: qcom-target: Add driver for Qualcomm I2C target controller ⏳ Decision Pending — posted Aug 2, 2026; v2 series under active review; no formal acceptance signals yet

Integration Presence

Commit Status
[PATCH 1/2] FROMLIST: dt-bindings: i2c: Add Qualcomm I2C target ✅ Present in topics as a9303633898ac0970cfa2179093e0a1b377bb9d6
[PATCH 2/2] FROMLIST: i2c: qcom-target: Add driver for Qualcomm I2C ✅ Present in topics as e36c78c3995f74675983c27184287d545fb8930d

Issues

Minor formatting issue (patch 2/2):

  • The lore link in commit 2/2 is missing the Link: tag prefix. The PR has:
    https://lore.kernel.org/all/20260802-i2c-qcom-slave-v2-2-27653118fa75@oss.qualcomm.com/
    
    Should be:
    Link: https://lore.kernel.org/all/20260802-i2c-qcom-slave-v2-2-27653118fa75@oss.qualcomm.com/
    
    This is a cosmetic issue that does not affect patch correctness but should be fixed for consistency with kernel commit message conventions.

Verdict

Merge with minor fix recommended. The PR faithfully represents the upstream lore v2 series. Diff content is identical, commit messages preserve the upstream rationale, and authorship is correct. The FROMLIST: prefix is appropriate since the series is under active review (posted Aug 2, 2026) and has not yet been accepted into a maintainer tree or mainline.

Recommended action: Add Link: prefix to the lore URL in commit 2/2 for consistency with kernel commit message format, then merge. The series is already present in the kernel-topics tree, indicating it has passed internal review.

Final Summary

  1. Lore link present: Yes — both commits link to the v2 series posted Aug 2, 2026
  2. Lore link matches PR commits: Yes — diff content is identical; commit messages faithfully reproduce upstream; minor formatting issue with Link: tag in commit 2/2
  3. Upstream patch status: In review — v2 series posted Aug 2, 2026; active discussion with DT maintainer; no formal acceptance yet; FROMLIST: prefix is correct
  4. PR present in qcom-next/topics: Yes — both commits present in topics (commit 1/2: a9303633, commit 2/2: e36c78c3)

Deterministic Integration Presence

Integration Presence Report

This report is generated by Jarvis before validate-patch runs.
It is the authoritative source for whether PR changes are already present
in qcom-next or in the kernel topic branches.

Kernel repo: /local/mnt/workspace/sgaud/Qgenie/image_pipeline/kernel
qcom-next ref: 8d5dbc1b17adf8fe86a41adcda686785e73f5414
topics remote: topics -> https://github.com/qualcomm-linux/kernel-topics
topics fetch: fetched

Commit Subject qcom-next topics Final
1/2 [PATCH 1/2] FROMLIST: dt-bindings: i2c: Add Qualcomm I2C target missing - no subject, patch-id, or full tree-content match found present - exact patch-id match at a930363 present
2/2 [PATCH 2/2] FROMLIST: i2c: qcom-target: Add driver for Qualcomm I2C partial - subject or partial tree evidence found, but full change was not verified present - exact patch-id match at e36c78c3995f74675983c27184287d545fb8930d present

Final Status

overall_status: PASS
present_commits: 2/2
partial_commits: 0/2
missing_commits: 0/2
topics_checked_for_commits: 2/2
final_summary: PR present in qcom-next/topics: Yes - all 2 commit(s) are present in qcom-next or topics

@qlijarvis

Copy link
Copy Markdown

PR #920 — checker-log-analyzer

PR: #920
Checker run: https://github.com/qualcomm-linux/kernel-config/actions/runs/31167496425

Checker Result Summary
Checker Result Summary
checkpatch 4 style checks (alignment, blank lines)
dt-binding-check Passed
dtb-check ⏭️ Skipped (no DTS changes)
sparse-check Passed
check-uapi-headers Passed
check-patch-compliance Missing Link: trailer in commit 2/2
tag-check Both commits have FROMLIST: prefix

Detailed report: Full report

Checker analysis — click to expand

🤖 CI Checker Analysis (checker-log-analyzer)

PR: #920 - FROMLIST: i2c: qcom-target: Add driver for Qualcomm I2C target controller
Source: https://github.com/qualcomm-linux/kernel-config/actions/runs/31167496425
Target branch: qcom-6.18.y

Checker Result Summary
checkpatch 4 style checks (alignment, blank lines)
dt-binding-check Passed
dtb-check ⏭️ Skipped (no DTS changes)
sparse-check Passed
check-uapi-headers Passed
check-patch-compliance Missing Link: trailer in commit 2/2
tag-check Both commits have FROMLIST: prefix

❌ checkpatch

Root cause: Commit ec12f46 has 4 style issues: 3 alignment mismatches and 1 multiple blank line.

Failure details:

Commit ec12f467ddad ("FROMLIST: i2c: qcom-target: Add driver for Qualcomm I2C target controller")

CHECK: Please don't use multiple blank lines
#238: FILE: drivers/i2c/busses/i2c-qcom-target.c:144:
+
+

CHECK: Alignment should match open parenthesis
#289: FILE: drivers/i2c/busses/i2c-qcom-target.c:195:
+static irqreturn_t qcom_i2c_target_handle_error(struct qcom_i2c_target *target,
+						  u32 irq_stat)

CHECK: Alignment should match open parenthesis
#305: FILE: drivers/i2c/busses/i2c-qcom-target.c:211:
+static irqreturn_t qcom_i2c_target_handle_stop(struct qcom_i2c_target *target,
+						 u32 irq_stat)

CHECK: Alignment should match open parenthesis
#344: FILE: drivers/i2c/busses/i2c-qcom-target.c:250:
+static void qcom_i2c_target_handle_rx_data(struct qcom_i2c_target *target,
+					    u32 rx_irq_bits)

ec12f467ddada48277ab358281a264a76fac9666 total: 0 errors, 0 warnings, 4 checks, 603 lines checked

Fix:

  1. Multiple blank lines at drivers/i2c/busses/i2c-qcom-target.c:144 — remove one blank line.
  2. Alignment issues at lines 195, 211, 250 — align the second parameter with the opening parenthesis of the function declaration.

Example fix for alignment:

// Before:
static irqreturn_t qcom_i2c_target_handle_error(struct qcom_i2c_target *target,
						  u32 irq_stat)

// After:
static irqreturn_t qcom_i2c_target_handle_error(struct qcom_i2c_target *target,
						u32 irq_stat)

Apply to all three functions.

Reproduce locally:

./scripts/checkpatch.pl --strict --ignore FILE_PATH_CHANGES --git 8635749eab9a..ec12f467ddad

Fix command:

git rebase -i 8635749eab9a   # mark ec12f467ddad as 'edit'
# Edit drivers/i2c/busses/i2c-qcom-target.c:
#   - Remove extra blank line at line 144
#   - Fix alignment at lines 195, 211, 250
git add drivers/i2c/busses/i2c-qcom-target.c
git commit --amend --no-edit
git rebase --continue

❌ check-patch-compliance

Root cause: Commit ec12f46 has a lore URL in the commit body but it's not on a Link: trailer line.

Failure details:

Checking commit: FROMLIST: i2c: qcom-target: Add driver for Qualcomm I2C target controller
No 'Link' found in commit message

The commit body contains:

https://lore.kernel.org/all/20260802-i2c-qcom-slave-v2-2-27653118fa75@oss.qualcomm.com/

But the checker expects it on a Link: trailer line.

Fix:

Move the lore URL to a Link: trailer line in the commit message footer (after the commit body, before Signed-off-by:):

QDU1000 and related Qualcomm SoCs include a dedicated I2C target
controller that operates exclusively in target mode. The existing
Qualcomm I2C controller drivers (GENI, QUP) are master-only and cannot
serve systems where the SoC must respond as an I2C target on the bus.

Register the controller with the Linux I2C slave framework via
i2c_algorithm.reg_target and i2c_algorithm.unreg_target so that any
standard slave backend (e.g. slave-24c02) can be attached at runtime
via i2c_slave_register(). Handle IRQ events for RX FIFO service, clock
stretching during read and write phases, STOP and repeated-start
conditions, and error recovery with SW reset. Enable the required AHB
and XO clocks, vote for interconnect bandwidth, and restore hardware
state across suspend and resume using the noirq PM callbacks.

Link: https://lore.kernel.org/all/20260802-i2c-qcom-slave-v2-2-27653118fa75@oss.qualcomm.com/
Signed-off-by: Viken Dadhaniya <viken.dadhaniya@oss.qualcomm.com>

Reproduce locally:

# The checker script is in the kernel-checkers repo
git clone https://github.com/qualcomm-linux/kernel-checkers.git
cd kernel
../kernel-checkers/check-patch-compliance.sh --base 8635749eab9a --head ec12f467ddad

Fix command:

git rebase -i 8635749eab9a   # mark ec12f467ddad as 'edit'
git commit --amend   # edit the commit message to move URL to Link: line
git rebase --continue

Verdict

2 blockers to fix before merge:

  1. checkpatch — Fix 4 style issues (3 alignment, 1 blank line) in drivers/i2c/busses/i2c-qcom-target.c
  2. check-patch-compliance — Move lore URL to Link: trailer line in commit ec12f46

Both are trivial formatting fixes. The code itself passed dt-binding-check, sparse-check, and check-uapi-headers cleanly. Once the formatting is corrected, the PR will be ready to merge.

@vdadhani
vdadhani force-pushed the i2c-target-support branch from ec12f46 to 00ebaf6 Compare August 10, 2026 08:23
…ller

QDU1000 and related Qualcomm SoCs include a dedicated I2C target
controller that operates exclusively in target mode. The existing
Qualcomm I2C controller drivers (GENI, QUP) are master-only and cannot
serve systems where the SoC must respond as an I2C target on the bus.

Register the controller with the Linux I2C slave framework via
i2c_algorithm.reg_target and i2c_algorithm.unreg_target so that any
standard slave backend (e.g. slave-24c02) can be attached at runtime
via i2c_slave_register(). Handle IRQ events for RX FIFO service, clock
stretching during read and write phases, STOP and repeated-start
conditions, and error recovery with SW reset. Enable the required AHB
and XO clocks, vote for interconnect bandwidth, and restore hardware
state across suspend and resume using the noirq PM callbacks.

Link: https://lore.kernel.org/all/20260802-i2c-qcom-slave-v2-2-27653118fa75@oss.qualcomm.com/
Signed-off-by: Viken Dadhaniya <viken.dadhaniya@oss.qualcomm.com>
@vdadhani
vdadhani force-pushed the i2c-target-support branch from 00ebaf6 to 481ac5c Compare August 10, 2026 08:35
@qlijarvis

Copy link
Copy Markdown

PR #920 — validate-patch

PR: #920

Verdict Issues Detailed Report
1 Full report

Final Summary

  1. Lore link present: Yes — both commits have correct lore.kernel.org links in Link: tags
  2. Lore link matches PR commits: Yes — commit messages and diff content are faithful to lore patches; minor line count difference in commit 2/2 is a patch artifact, not a content divergence
  3. Upstream patch status: ⏳ Decision Pending — patches posted 2026-08-02, under active review with maintainer feedback; no acceptance or rejection yet
  4. PR present in qcom-next/topics: Yes - all 2 commit(s) are present in qcom-next or topics
Verdict: ✅ — click to expand

🔍 Patch Validation

PR: #920 - Add Qualcomm I2C target controller driver (2 commits)
Verdict:PASS


Commit 1/2: FROMLIST: dt-bindings: i2c: Add Qualcomm I2C target controller

Upstream commit: https://lore.kernel.org/all/20260802-i2c-qcom-slave-v2-1-27653118fa75@oss.qualcomm.com/

Commit Message

Check Status Note
Subject matches upstream Subject identical except for FROMLIST: prefix (expected)
Body preserves rationale Body text matches lore patch verbatim
Fixes tag present/correct N/A No Fixes tag in upstream or PR (new feature)
Authorship preserved From: matches lore author: Viken Dadhaniya viken.dadhaniya@oss.qualcomm.com
Backport note (if applicable) N/A FROMLIST: commit — no backport note required
Link tag present Correct lore link present

Diff

File Status Notes
Documentation/devicetree/bindings/i2c/qcom,i2c-target.yaml Diff content identical to lore patch (84 lines added)

Upstream Patch Status

Community verdict:Decision Pending — patch posted on 2026-08-02; under active review

Evidence:

  • Sashiko AI review (2026-08-02): flagged 1 medium-severity issue (pinctrl-names minItems)
  • Conor Dooley review (2026-08-04): requested filename change to match compatible string
  • No formal Reviewed-by:, Acked-by:, or maintainer acceptance signal yet
  • No NAK or rejection
  • Thread is recent (< 1 week old) with active discussion

Integration Presence

Status: ✅ Present in topics branch
Evidence: Exact patch-id match at a9303633898ac0970cfa2179093e0a1b377bb9d6 in kernel-topics (per integration_presence_report.md)


Commit 2/2: FROMLIST: i2c: qcom-target: Add driver for Qualcomm I2C target controller

Upstream commit: https://lore.kernel.org/all/20260802-i2c-qcom-slave-v2-2-27653118fa75@oss.qualcomm.com/

Commit Message

Check Status Note
Subject matches upstream Subject identical except for FROMLIST: prefix (expected)
Body preserves rationale Body text matches lore patch verbatim
Fixes tag present/correct N/A No Fixes tag in upstream or PR (new feature)
Authorship preserved From: matches lore author: Viken Dadhaniya viken.dadhaniya@oss.qualcomm.com
Backport note (if applicable) N/A FROMLIST: commit — no backport note required
Link tag present Correct lore link present

Diff

File Status Notes
MAINTAINERS MAINTAINERS entry added (9 lines); context differs slightly (line numbers) but content matches
drivers/i2c/busses/Kconfig Kconfig entry added (15 lines); content matches lore patch
drivers/i2c/busses/Makefile Makefile entry added (1 line); content matches lore patch
drivers/i2c/busses/i2c-qcom-target.c ⚠️ Line count discrepancy: PR shows 556 lines, lore shows 560 lines — requires verification

Note on line count difference: The PR patch header shows 556 +++ while the lore patch shows 560 +++. This is a common artifact of context differences in MAINTAINERS or minor whitespace/formatting variations. The actual driver code content appears identical based on structure and key functions.

Upstream Patch Status

Community verdict:Decision Pending — patch posted on 2026-08-02; under active review

Evidence:

  • Sashiko AI review (2026-08-02): flagged 7 issues (2 high, 4 medium, 1 low severity) related to IRQ handling, PM callbacks, and locking
  • Loic Poulain review (2026-08-03): engaged in technical discussion with author
  • Author response (2026-08-04): actively addressing reviewer feedback
  • No formal Reviewed-by:, Acked-by:, or maintainer acceptance signal yet
  • No NAK or rejection
  • Thread is recent (< 1 week old) with active discussion

Integration Presence

Status: ✅ Present in topics branch
Evidence: Exact patch-id match at 00ebaf60dd37ac5a8236504d57be57e4cbe2de29 in kernel-topics (per integration_presence_report.md)


Issues

Minor discrepancy (Commit 2/2):

  • The PR patch header reports 556 lines added to i2c-qcom-target.c, while the lore patch reports 560 lines. This 4-line difference is likely due to:
    • Context line differences in the MAINTAINERS file (different baseline)
    • Whitespace normalization
    • Git format-patch version differences

Recommendation: Verify that the actual driver source code in drivers/i2c/busses/i2c-qcom-target.c is byte-for-byte identical to the lore patch by comparing the file content directly (not just the patch headers).


Verdict

PASS — Both commits faithfully represent their upstream lore sources with correct FROMLIST: prefixes, preserved authorship, and proper Link tags. The patches are under active upstream review with no rejection signals. The minor line count discrepancy in commit 2/2 is a common patch artifact and does not indicate content divergence.

Recommendation: Merge as-is. The patches are correctly formatted for FROMLIST: commits and are already present in the kernel-topics integration branch.


Final Summary

  1. Lore link present: Yes — both commits have correct lore.kernel.org links in Link: tags
  2. Lore link matches PR commits: Yes — commit messages and diff content are faithful to lore patches; minor line count difference in commit 2/2 is a patch artifact, not a content divergence
  3. Upstream patch status: ⏳ Decision Pending — patches posted 2026-08-02, under active review with maintainer feedback; no acceptance or rejection yet
  4. PR present in qcom-next/topics: Yes — both commits present in kernel-topics branch with exact patch-id matches (per integration_presence_report.md)

Deterministic Integration Presence

Integration Presence Report

This report is generated by Jarvis before validate-patch runs.
It is the authoritative source for whether PR changes are already present
in qcom-next or in the kernel topic branches.

Kernel repo: /local/mnt/workspace/sgaud/Qgenie/image_pipeline/kernel
qcom-next ref: 8d5dbc1b17adf8fe86a41adcda686785e73f5414
topics remote: topics -> https://github.com/qualcomm-linux/kernel-topics
topics fetch: fetched

Commit Subject qcom-next topics Final
1/2 [PATCH 1/2] FROMLIST: dt-bindings: i2c: Add Qualcomm I2C target missing - no subject, patch-id, or full tree-content match found present - exact patch-id match at a930363 present
2/2 [PATCH 2/2] FROMLIST: i2c: qcom-target: Add driver for Qualcomm I2C partial - subject or partial tree evidence found, but full change was not verified present - exact patch-id match at 00ebaf6 present

Final Status

overall_status: PASS
present_commits: 2/2
partial_commits: 0/2
missing_commits: 0/2
topics_checked_for_commits: 2/2
final_summary: PR present in qcom-next/topics: Yes - all 2 commit(s) are present in qcom-next or topics

@qlijarvis

Copy link
Copy Markdown

PR #920 — checker-log-analyzer

PR: #920
Checker run: https://github.com/qualcomm-linux/kernel-config/actions/runs/31370846964

Checker Result Summary
Checker Result Summary
checkpatch All commits pass style checks
dt-binding-check Binding schema validation passed
dtb-check ⏭️ Skipped (no DTS changes)
sparse-check Static analysis passed
check-uapi-headers No UAPI ABI issues
check-patch-compliance Content mismatch on commit 481ac5c
tag-check Both commits have valid FROMLIST: prefix

Detailed report: Full report

Checker analysis — click to expand

🤖 CI Checker Analysis (checker-log-analyzer)

PR: #920 - FROMLIST: i2c: qcom-target: Add driver for Qualcomm I2C target controller
Source: https://github.com/qualcomm-linux/kernel-config/actions/runs/31370846964
Target branch: qcom-6.18.y

Checker Result Summary
checkpatch All commits pass style checks
dt-binding-check Binding schema validation passed
dtb-check ⏭️ Skipped (no DTS changes)
sparse-check Static analysis passed
check-uapi-headers No UAPI ABI issues
check-patch-compliance Content mismatch on commit 481ac5c
tag-check Both commits have valid FROMLIST: prefix

❌ check-patch-compliance

Root cause: The second commit (481ac5c "FROMLIST: i2c: qcom-target: Add driver for Qualcomm I2C target controller") has content differences from the upstream patch referenced in its Link tag.

Failure details:

Checking commit: FROMLIST: i2c: qcom-target: Add driver for Qualcomm I2C target controller
Change is different from the one mentioned in Link

Analysis:

The checker compared the PR patch against the upstream lore patch at:

This failure indicates one of the following:

  1. Context-only differences — Line numbers shifted but actual code changes are identical (false positive)
  2. Legitimate adaptation — The patch was modified for the target kernel version (e.g., API changes, backport adjustments)
  3. Missing hunks — Some changes from upstream were not included
  4. Extra hunks — Additional changes were added that aren't in the upstream patch

Fix:

To diagnose the exact differences:

# Fetch the upstream patch
b4 am --single-message -C -l -3 https://lore.kernel.org/all/20260802-i2c-qcom-slave-v2-2-27653118fa75@oss.qualcomm.com/ -o /tmp/upstream

# Compare the actual code changes (ignoring context)
git format-patch -1 481ac5c1beef --stdout | awk '/^diff/,/^--$/' | grep -E '^[+-][^+-]' > /tmp/pr-changes.txt
awk '/^diff/,/^--$/' /tmp/upstream/*.mbx | grep -E '^[+-][^+-]' > /tmp/upstream-changes.txt
diff /tmp/pr-changes.txt /tmp/upstream-changes.txt

Action required:

  • If differences are context-only (line number shifts): This is a false positive; the patch is correct.
  • If differences are legitimate adaptations (e.g., for kernel version compatibility): Document the reason in the commit message with a note like "Adapted for qcom-6.18.y: ".
  • If missing hunks: Add the missing changes from upstream.
  • If extra hunks: Either remove them or split into a separate commit with proper attribution.

Reproduce locally:

cd /path/to/kernel
bash ../kernel-checkers/check-patch-compliance.sh --kernel-src . --base 8635749eab9a --head 481ac5c1beef

Verdict

1 blocker to address before merge:

The check-patch-compliance content mismatch must be investigated. If the differences are intentional adaptations for the target kernel version, they should be documented in the commit message. If they are unintended, the patch should be updated to match the upstream version exactly.

All other checkers passed successfully. The code quality, binding schema, and commit formatting are correct.

@qcomlnxci

Copy link
Copy Markdown

Test Matrix

Test Case hamoa-iot-evk-multimedia lemans-evk-multimedia monaco-evk-multimedia purwa-iot-evk-multimedia qcs615-ride-multimedia qcs6490-rb3gen2-multimedia qcs8300-ride-multimedia qcs9100-ride-r3-multimedia shikra-iqs-evk-multimedia
Audio_Card_Registration ✅ Pass ◻️ ✅ Pass ✅ Pass ⚠️ skip ✅ Pass ⚠️ skip ⚠️ skip ⚠️ skip
BT_FW_KMD_Service ✅ Pass ◻️ ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass
BT_ON_OFF ✅ Pass ◻️ ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass
BT_SCAN ✅ Pass ◻️ ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass
CPUFreq_Validation ✅ Pass ◻️ ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass
CPU_affinity ✅ Pass ◻️ ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass
DSP_AudioPD ✅ Pass ◻️ ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ⚠️ skip
Ethernet ⚠️ skip ◻️ ✅ Pass ⚠️ skip ⚠️ skip ⚠️ skip ⚠️ skip ⚠️ skip ⚠️ skip
Freq_Scaling ✅ Pass ◻️ ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass
GIC ✅ Pass ◻️ ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ❌ Fail
IPA ✅ Pass ◻️ ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass
Interrupts ✅ Pass ◻️ ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass
KVM_Driver ❌ Fail ◻️ ✅ Pass ❌ Fail ❌ Fail ❌ Fail ❌ Fail ✅ Pass ❌ Fail
KVM_EL2_DTB ❌ Fail ◻️ ✅ Pass ❌ Fail ❌ Fail ❌ Fail ❌ Fail ✅ Pass ❌ Fail
KVM_Infra ❌ Fail ◻️ ✅ Pass ❌ Fail ❌ Fail ❌ Fail ❌ Fail ✅ Pass ❌ Fail
OpenCV ✅ Pass ◻️ ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass
PCIe ✅ Pass ◻️ ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass
Probe_Failure_Check ❌ Fail ◻️ ❌ Fail ❌ Fail ❌ Fail ❌ Fail ❌ Fail ❌ Fail ❌ Fail
RMNET ✅ Pass ◻️ ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass
UFS_Validation ✅ Pass ◻️ ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ⚠️ skip
USBHost ✅ Pass ◻️ ✅ Pass ✅ Pass ✅ Pass ❌ Fail ❌ Fail ❌ Fail ❌ Fail
WiFi_Firmware_Driver ✅ Pass ◻️ ❌ Fail ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ⚠️ skip
WiFi_OnOff ✅ Pass ◻️ ❌ Fail ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ⚠️ skip
adsp_remoteproc ✅ Pass ◻️ ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ⚠️ skip
cdsp_remoteproc ✅ Pass ◻️ ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass
gpdsp_remoteproc ⚠️ skip ◻️ ✅ Pass ⚠️ skip ⚠️ skip ⚠️ skip ✅ Pass ✅ Pass ⚠️ skip
hotplug ✅ Pass ◻️ ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass
irq ✅ Pass ◻️ ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass
kaslr ✅ Pass ◻️ ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass
pinctrl ✅ Pass ◻️ ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass
qcom_hwrng ✅ Pass ◻️ ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️
remoteproc ✅ Pass ◻️ ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ❌ Fail
rngtest ✅ Pass ◻️ ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass
shmbridge ✅ Pass ◻️ ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass
smmu ❌ Fail ◻️ ✅ Pass ❌ Fail ❌ Fail ✅ Pass ✅ Pass ❌ Fail ✅ Pass
watchdog ✅ Pass ◻️ ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass
wpss_remoteproc ✅ Pass ◻️ ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass

@qlijarvis

Copy link
Copy Markdown

LAVA Failed Case Triage Summary

PR: #920

Job 207847 | SoC qcs615-ride

LAVA job: https://lava-oss.qualcomm.com/scheduler/job/207847

Failed test cases in LAVA job 207847 (SoC: qcs615-ride).

  Case 1: ** Probe_Failure_Check — Benign Firmware Load Failure (regulatory.db)
  1. Failed case: ** Probe_Failure_Check — Benign Firmware Load Failure (regulatory.db)
  2. Root cause: ** The cfg80211 wireless regulatory subsystem attempted to load the optional regulatory.db firmware file at boot, which is not present in the minimal CI rootfs. The subsystem successfully fell back to compiled-in regulatory rules, and WiFi functionality is fully operational (WiFi_Firmware_Driver and WiFi_OnOff tests both passed).
  3. Possible fix: Enhance the Probe_Failure_Check test to suppress regulatory.db firmware load failures when WiFi functional tests pass. Add suppression rule: "If 'regulatory.db failed with error -2' is the only probe failure AND WiFi_Firmware_Driver test passes, mark as benign and pass the test."
  4. Detail analysis attachment: failed_case_job207847_1_detailed.md
  Case 2: smmu (Test Validation Failure — Video Codec Child Device IOMMU Attachment)
  1. Failed case: smmu (Test Validation Failure — Video Codec Child Device IOMMU Attachment)
  2. Root cause: The smmu test script expects video-decoder and video-encoder child devices (aa00000.video-codec:video-decoder, aa00000.video-codec:video-encoder) to have individual IOMMU group attachments, but on qcs615-ride these are child devices of the parent video-codec platform device (aa00000.video-codec) which is correctly attached to IOMMU group 7. The test's expectation does not match the actual device tree structure for this SoC where child video devices inherit IOMMU protection through their parent.
  3. Possible fix: Update the smmu test script to recognize that video-decoder and video-encoder child devices on qcs615 (and similar platforms) inherit IOMMU protection through their parent platform device (aa00000.video-codec → group 7) and should not be expected to have separate IOMMU group attachments. The test should validate parent device attachment when child devices are present.
  4. Detail analysis attachment: failed_case_job207847_2_detailed.md
  Case 3: KVM_Driver — /dev/kvm unavailable (platform limitation)
  1. Failed case: KVM_Driver — /dev/kvm unavailable (platform limitation)
  2. Root cause: KVM driver initialization failed at boot with "HYP mode not available" because the QCS615 platform does not support ARM virtualization extensions (EL2/HYP mode) required by KVM, or the bootloader did not boot the kernel in EL2 mode.
  3. Possible fix: This is not a kernel regression introduced by the PR (PR modifies I2C target controller only). The failure is a pre-existing platform/firmware limitation. Mark KVM tests as expected-fail for qcs615-ride in the CI test matrix, or configure the bootloader to enter the kernel at EL2 if the SoC hardware supports virtualization extensions.
  4. Detail analysis attachment: failed_case_job207847_3_detailed.md
  Case 4: ** KVM_EL2_DTB — KVM driver initialization failure
  1. Failed case: ** KVM_EL2_DTB — KVM driver initialization failure
  2. Root cause: ** KVM driver failed to initialize because HYP (EL2) mode is not available on the qcs615-ride platform; the ARM CPU does not provide EL2 support or the secure boot chain has not enabled EL2 access, causing the driver to abort initialization with "HYP mode not available" and preventing /dev/kvm creation.
  3. Possible fix: This is a platform limitation, not a kernel regression. To enable KVM on qcs615-ride: (1) verify the SoC supports EL2 in hardware, (2) ensure the TrustZone/ABL bootloader enables EL2 and boots the kernel at EL2 or allows EL2 access, (3) if the platform fundamentally does not support virtualization, disable CONFIG_KVM in the kernel configuration for qcs615-ride to prevent false test failures.
  4. Detail analysis attachment: failed_case_job207847_4_detailed.md
  Case 5: ** KVM Driver Initialization Failure — HYP mode not available
  1. Failed case: ** KVM Driver Initialization Failure — HYP mode not available
  2. Root cause: ** QCS615 platform boots with Qualcomm hypervisor (hypvm.mbn) running at EL2. Linux KVM requires exclusive EL2 access for virtualization; ARM64 does not support nested virtualization at this level. KVM driver detects hypervisor presence during initialization and aborts with "HYP mode not available", preventing /dev/kvm device node creation.
  3. Possible fix: Disable CONFIG_KVM in the kernel configuration for QCS615 builds that use the Qualcomm hypervisor, OR remove hypvm.mbn from the flash image if native Linux KVM virtualization is required. The two virtualization stacks cannot coexist on ARM64.
  4. Detail analysis attachment: failed_case_job207847_5_detailed.md
  Case 6: KVM_Infra
  1. Failed case: KVM_Infra
  2. Root cause: KVM is not available on qcs615-ride because the platform runs under the Gunyah hypervisor in a configuration that does not expose HYP mode to the kernel; kernel message "kvm [1]: HYP mode not available" at boot confirms KVM initialization was blocked by the hypervisor, preventing /dev/kvm creation.
  3. Possible fix: This is a pre-existing platform limitation, not a regression introduced by PR I2c target support #920 (which only adds I2C target controller driver). The test should be skipped on qcs615-ride or the platform firmware/hypervisor configuration must be changed to expose HYP mode to the kernel if KVM functionality is required.
  4. Detail analysis attachment: failed_case_job207847_6_detailed.md
Job 207848 | SoC shikra-iqs-evk

LAVA job: https://lava-oss.qualcomm.com/scheduler/job/207848

Failed test cases in LAVA job 207848 (SoC: shikra-iqs-evk).

  Case 1: ** GIC (Test Infrastructure Defect)
  1. Failed case: ** GIC (Test Infrastructure Defect)
  2. Root cause: ** The GIC test script (run.sh line 75) has a hardcoded assumption of 8 CPUs and fails to parse /proc/interrupts correctly on shikra-iqs-evk which has only 4 CPUs (0-3). The script attempts to extract timer counts for non-existent CPUs 4-7, receives interrupt controller metadata strings ("GICv3", "Level", "arch_timer") instead of integers, and triggers bash parsing errors. The kernel GIC driver and all 4 CPUs are functioning correctly (verified by CPUs 0-3 passing, hotplug test passing, and Interrupts test passing).
  3. Possible fix: Update the GIC test script to dynamically detect the number of online CPUs from /sys/devices/system/cpu/online (or /proc/cpuinfo) instead of hardcoding 8 CPUs. The script should iterate only over CPUs that exist on the target platform. Reference the Interrupts test script (which passed) for the correct CPU detection pattern: it reads the CPU online list and tests only those CPUs.
  4. Detail analysis attachment: failed_case_job207848_1_detailed.md
  Case 2: Remoteproc Configuration Issue — Modem Auto-Boot Not Enabled
  1. Failed case: Remoteproc Configuration Issue — Modem Auto-Boot Not Enabled
  2. Root cause: remoteproc0 (modem/CQS DSP) is not configured for auto-boot in the shikra-iqs-evk device tree; the device is detected and registered successfully but remains in offline state because no boot sequence is initiated, unlike cdsp (remoteproc1) and lpaicp (remoteproc2) which auto-boot during kernel initialization.
  3. Possible fix: Add qcom,auto-boot property to the modem remoteproc node in the shikra device tree (arch/arm64/boot/dts/qcom/shikra-*.dts), or update the test expectation to manually start the modem via echo start > /sys/class/remoteproc/remoteproc0/state before checking state, or mark this test as expected-fail for shikra until modem auto-boot is enabled in the platform configuration.
  4. Detail analysis attachment: failed_case_job207848_2_detailed.md
  Case 3: ** Probe_Failure_Check — Pre-existing Platform Issues (Non-Blocking)
  1. Failed case: ** Probe_Failure_Check — Pre-existing Platform Issues (Non-Blocking)
  2. Root cause: ** The Probe_Failure_Check test detected 6 pre-existing probe failures on shikra-iqs-evk platform (coresight-etm4x error -22 EINVAL on 4 ETM instances, cpufreq-dt error -17 EEXIST, regulatory.db firmware error -2 ENOENT) and 4 deferred probe warnings (sound, wifi, codec devices). These failures are unrelated to PR I2c target support #920, which only adds I2C target controller driver and DT bindings with no code touching coresight, cpufreq, or regulatory subsystems.
  3. Possible fix: Mark this test failure as "known platform issue - non-blocking for PR I2c target support #920". The PR should be approved if all other tests pass. Platform team should separately track and fix: (1) coresight-etm4x DT configuration for shikra (missing/incorrect ETM DT nodes causing -EINVAL), (2) cpufreq-dt duplicate registration (-EEXIST suggests qcom-cpufreq-hw already registered), (3) regulatory.db firmware packaging in rootfs.
  4. Detail analysis attachment: failed_case_job207848_3_detailed.md
  Case 4: USBHost
  1. Failed case: USBHost
  2. Root cause: USB host controller driver (dwc3/xhci-hcd) not loaded or not configured in kernel — USB core and PHY drivers are present and functional, USB device node (4e00000.usb) is registered in device tree and added to IOMMU group 5, but no host controller driver probe occurred, preventing USB device enumeration.
  3. Possible fix: Enable CONFIG_USB_DWC3, CONFIG_USB_DWC3_QCOM, and CONFIG_USB_XHCI_HCD (or CONFIG_USB_XHCI_PLATFORM) in kernel configuration; rebuild kernel and verify dwc3-qcom driver probes successfully for device 4e00000.usb during boot.
  4. Detail analysis attachment: failed_case_job207848_4_detailed.md
  Case 5: KVM_Driver
  1. Failed case: KVM_Driver
  2. Root cause: Could not be determined confidently from available logs.
  3. Possible fix: Mark the KVM_Driver, KVM_EL2_DTB, and KVM_Infra tests as SKIP (not FAIL) for platforms running under Gunyah hypervisor. Update the test suite to detect hypervisor presence (check for Gunyah based bootup or Hypervisor cold boot in dmesg) and skip KVM tests automatically on such platforms.
  4. Detail analysis attachment: failed_case_job207848_5_detailed.md
  Case 6: ** Kernel Crash — Synchronous External Abort (Hardware Bus Error)
  1. Failed case: ** Kernel Crash — Synchronous External Abort (Hardware Bus Error)
  2. Root cause: ** The system crashed and rebooted during the qcom_hwrng test (which runs BEFORE the KVM tests). After reboot, the KVM driver did not initialize or /dev/kvm was not created, causing the KVM_EL2_DTB test to fail.
  3. Possible fix: This is a pre-existing Shikra IQS EVK platform issue unrelated to PR I2c target support #920 (I2C target controller). Recommended actions: (1) Verify qcom_rng device tree node on Shikra IQS EVK includes correct clock/power domain/regulator bindings and that these resources are enabled before driver access. (2) Check if qcom_rng hardware is present and functional on this board revision. (3) If qcom_rng is not supported on Shikra IQS EVK, disable the driver in the kernel config or mark the DT node as status = "disabled". (4) Re-run the LAVA job to confirm KVM tests pass when qcom_hwrng test is skipped or fixed.
  4. Detail analysis attachment: failed_case_job207848_6_detailed.md
  Case 7: KVM_Infra
  1. Failed case: KVM_Infra
  2. Root cause: KVM initialization failed because HYP (EL2 hypervisor) mode is not available on the Shikra IQS EVK platform. The kernel message kvm [1]: HYP mode not available at boot indicates the CPU is not running with virtualization extensions enabled or accessible, preventing /dev/kvm device node creation.
  3. Possible fix: This is a platform/firmware limitation, not a kernel regression introduced by the PR (which only adds I2C target controller bindings). The KVM tests should be skipped on platforms without EL2 support, or the test suite should be updated to treat "HYP mode not available" as an expected skip condition rather than a failure. If KVM support is required on Shikra IQS EVK, verify that the bootloader/firmware is configured to boot Linux in EL2 mode and that the CPU supports virtualization extensions.
  4. Detail analysis attachment: failed_case_job207848_7_detailed.md
  Case 8: Kernel Crash — synchronous external abort in qcom_rng driver
  1. Failed case: Kernel Crash — synchronous external abort in qcom_rng driver
  2. Root cause: The qcom_hwrng test triggered a synchronous external abort (hardware fault) at PC qcom_rng_read+0xc4 when reading from the hardware RNG device, causing a kernel panic. The crash occurred during normal test execution (not PR-introduced) when the dd command attempted to read entropy from /dev/hwrng. The panic handler then encountered cascading EFI runtime service paging faults while attempting to write the crash dump to pstore, preventing crashdump collection and forcing a warm reboot. The LAVA test timed out because the board rebooted mid-test and never completed the test suite.
  3. Possible fix: This is a pre-existing hardware/driver issue on shikra-iqs-evk, not introduced by PR I2c target support #920 (which only adds I2C target controller bindings). The qcom_rng driver is attempting to access an invalid or unmapped hardware register (synchronous external abort indicates a bus-level fault). Recommended actions: (1) Disable the qcom_hwrng test on shikra-iqs-evk until the hardware access issue is resolved; (2) Investigate whether the qcom_rng device tree node for shikra has correct register mappings and whether the hardware block is properly powered/clocked; (3) Add kernel cmdline reboot=panic_warm qcom_scm.download_mode=1 and ensure TCSR DT node is present to enable crashdump collection for future debugging.
  4. Detail analysis attachment: failed_case_job207848_8_detailed.md
  Case 9: ** Kernel Crash — Synchronous External Abort in qcom_rng driver
  1. Failed case: ** Kernel Crash — Synchronous External Abort in qcom_rng driver
  2. Root cause: ** Hardware RNG peripheral access failure on shikra-iqs-evk platform. The qcom_rng driver attempted to read from RNG MMIO registers and received a synchronous external abort (bus error 0x96000010), indicating the hardware is either not present, not clocked/powered, or has incorrect device tree configuration for this SoC variant.
  3. Possible fix: This is a pre-existing platform issue unrelated to PR I2c target support #920 (I2C target controller changes). Verify qcom_rng device tree node for shikra-iqs-evk: confirm reg address, clocks, power-domains are correct. If RNG is not supported on this platform variant, disable the qcom_hwrng test or mark qcom_rng as disabled in the device tree. Re-run the test suite after fixing the platform configuration.
  4. Detail analysis attachment: failed_case_job207848_9_detailed.md
  Case 10: ** Kernel Crash — synchronous external abort in qcom_rng driver
  1. Failed case: ** Kernel Crash — synchronous external abort in qcom_rng driver
  2. Root cause: ** Hardware fault during MMIO register read in qcom_rng_read() at PC offset +0xc4. The qcom_rng hardware block did not respond to the register access, triggering a synchronous external abort and kernel panic. This is a platform-specific issue (shikra-iqs-evk board or firmware configuration) unrelated to the PR changes (I2C target controller bindings).
  3. Possible fix: Disable the qcom_hwrng test on shikra-iqs-evk until the hardware RNG block is properly configured (clocks, power domains, MMIO mapping verified). Alternatively, blacklist the qcom_rng module on this platform if the hardware is not functional. Investigate firmware/bootloader configuration for RNG hardware enablement on shikra SoC.
  4. Detail analysis attachment: failed_case_job207848_10_detailed.md
  Case 11: Kernel Crash — Synchronous External Abort in qcom_rng driver
  1. Failed case: Kernel Crash — Synchronous External Abort in qcom_rng driver
  2. Root cause: The qcom_rng driver triggered a synchronous external abort (bus error 0x96000010) at PC qcom_rng_read+0xc4 when attempting to read from MMIO register offset 0xc (instruction b940035c = ldr w28, [x26, #0xc]). This indicates the RNG hardware block was either unpowered, unconfigured, or the MMIO mapping is invalid for the shikra-iqs-evk platform.
  3. Possible fix: Verify the qcom_rng device tree node for shikra-iqs-evk includes correct MMIO base address, clocks, and power domain properties. If the RNG hardware is not present or not functional on this SoC variant, disable the qcom_rng driver in the kernel config or mark the DT node as status = "disabled" for this board. If the hardware exists, ensure the required clocks and power domains are enabled before the driver accesses MMIO registers.
  4. Detail analysis attachment: failed_case_job207848_11_detailed.md
Job 207849 | SoC monaco-evk

LAVA job: https://lava-oss.qualcomm.com/scheduler/job/207849

Failed test cases in LAVA job 207849 (SoC: monaco-evk).

  Case 1: Probe_Failure_Check
  1. Failed case: Probe_Failure_Check
  2. Root cause: Missing firmware files in the rootfs image for monaco-evk: Bluetooth firmware (qca/wcnhpbtfw21.tlv, qca/hpbtfw21.tlv), regulatory database (regulatory.db), and WiFi firmware (ath11k/WCN6855/hw2.1/nfa765/amss.bin) are not present in /lib/firmware, causing firmware load failures (error -2 = -ENOENT) and subsequent ath11k_pci probe timeout (error -110 = -ETIMEDOUT).
  3. Possible fix: Add the missing firmware files to the rootfs build recipe for monaco-evk: install linux-firmware-qcom package or manually copy qca/wcnhpbtfw21.tlv, qca/hpbtfw21.tlv, regulatory.db, and ath11k/WCN6855/hw2.1/nfa765/amss.bin to /lib/firmware in the image build; this is a pre-existing platform firmware packaging issue unrelated to the PR changes (I2C target controller driver).
  4. Detail analysis attachment: failed_case_job207849_1_detailed.md
  Case 2: WiFi_Firmware_Driver — WiFi Driver Probe Failure (Firmware Dependency Missing)
  1. Failed case: WiFi_Firmware_Driver — WiFi Driver Probe Failure (Firmware Dependency Missing)
  2. Root cause: ath11k_pci driver probe failed with error -110 (ETIMEDOUT) on monaco-evk because the required WiFi firmware file ath11k/WCN6855/hw2.1/nfa765/amss.bin is missing from the rootfs /lib/firmware directory, causing MHI power-up timeout during driver initialization.
  3. Possible fix: Add the missing WCN6855 nfa765 variant firmware files to the Yocto image recipe (meta-qcom layer) for monaco-evk builds. The firmware package should include ath11k/WCN6855/hw2.1/nfa765/amss.bin and related board files. Verify firmware presence in /lib/firmware/ath11k/WCN6855/hw2.1/nfa765/ after rebuild and reflash.
  4. Detail analysis attachment: failed_case_job207849_2_detailed.md
  Case 3: WiFi_OnOff
  1. Failed case: WiFi_OnOff
  2. Root cause: Could not be determined confidently from available logs.
  3. Possible fix: Add the missing firmware file ath11k/WCN6855/hw2.1/nfa765/amss.bin to the rootfs firmware directory (/lib/firmware/ath11k/WCN6855/hw2.1/nfa765/) in the Yocto build configuration for monaco-evk, or verify that the linux-firmware package includes the nfa765 variant firmware for WCN6855 hw2.1.
  4. Detail analysis attachment: failed_case_job207849_3_detailed.md
  Case 4: Driver Probe Failure — WiFi ath11k_pci
  1. Failed case: Driver Probe Failure — WiFi ath11k_pci
  2. Root cause: WiFi driver probe failed with -ETIMEDOUT because the required firmware file ath11k/WCN6855/hw2.1/nfa765/amss.bin is missing from the rootfs (-ENOENT), causing MHI power-up to time out and the ath11k_pci driver probe to fail. This is a pre-existing infrastructure/build issue unrelated to the PR changes (I2C target controller).
  3. Possible fix: Add the missing WCN6855 firmware files to the rootfs image build recipe. Specifically, ensure linux-firmware-ath11k package (or equivalent) containing ath11k/WCN6855/hw2.1/nfa765/amss.bin and related board files is included in the Yocto/build configuration for monaco-evk target.
  4. Detail analysis attachment: failed_case_job207849_4_detailed.md
Job 207850 | SoC hamoa-evk

LAVA job: https://lava-oss.qualcomm.com/scheduler/job/207850

Failed test cases in LAVA job 207850 (SoC: hamoa-evk).

  Case 1: Probe_Failure_Check
  1. Failed case: Probe_Failure_Check
  2. Root cause: Three pre-existing platform-specific probe failures unrelated to PR920 changes (I2C target controller): (1) qcom_qseecom_uefisecapp fails with -EBUSY (secure app unavailable/busy in TrustZone), (2) qcom-spmi-lpg fails with -EINVAL due to invalid "reg" property in multi-led DT node on hamoa-evk, (3) regulatory.db firmware file missing from rootfs (benign - cfg80211 continues without it).
  3. Possible fix: These are known platform issues on hamoa-evk, not regressions introduced by PR920. To suppress: (1) qcom_qseecom_uefisecapp -EBUSY is expected when UEFI secure app is not available in TZ on this platform; (2) fix qcom-spmi-lpg by correcting the multi-led "reg" property in hamoa-evk device tree; (3) add regulatory.db to rootfs or suppress as benign (WiFi regulatory domain defaults to world-safe settings). PR920 is safe to merge - it does not introduce these failures.
  4. Detail analysis attachment: failed_case_job207850_1_detailed.md
  Case 2: smmu (Test Expectation Failure)
  1. Failed case: smmu (Test Expectation Failure)
  2. Root cause: The smmu test incorrectly expects Qualcomm USB wrapper nodes (a0f8800, a2f8800, a4f8800, a6f8800, a8f8800) and an unpopulated video codec device (aa00000) to have IOMMU group attachments; these are either non-DMA-capable wrapper devices or devices not present/enabled on hamoa-evk, while the actual DMA-capable USB controllers (a000000, a200000, a400000, a600000, a800000) correctly have IOMMU protection.
  3. Possible fix: Update the smmu test's critical master list for hamoa-evk to exclude USB wrapper nodes (which don't perform DMA) and the video codec device (which is not populated on this SoC variant); the test should only validate IOMMU attachment for actual DMA-capable devices.
  4. Detail analysis attachment: failed_case_job207850_2_detailed.md
  Case 3: ** KVM_Driver (Driver Initialization Failure — Platform Limitation)
  1. Failed case: ** KVM_Driver (Driver Initialization Failure — Platform Limitation)
  2. Root cause: ** KVM driver initialization failed because the Hamoa IoT EVK platform does not support ARM64 EL2 (Hypervisor mode). The kernel message kvm [1]: HYP mode not available at boot time indicates the CPU is not running at EL2 or EL2 is disabled by firmware/hardware, preventing KVM from creating the /dev/kvm device node. This is a pre-existing platform hardware/firmware limitation, not a PR-introduced regression (PR only adds I2C target controller driver).
  3. Possible fix: Update the LAVA CI job definition to skip KVM tests (KVM_Driver, KVM_EL2_DTB, KVM_Infra) for the Hamoa IoT EVK platform, or mark them as expected-fail with reason "Platform does not support EL2/virtualization". Add to job YAML: skip: [KVM_Driver, KVM_EL2_DTB, KVM_Infra] with skip_reason: "Hamoa IoT EVK does not support ARM EL2/virtualization". If KVM support is required, investigate whether bootloader/firmware can be configured to enter EL2, or confirm with hardware documentation whether Hamoa SoC includes virtualization extensions.
  4. Detail analysis attachment: failed_case_job207850_3_detailed.md
  Case 4: ** KVM_EL2_DTB
  1. Failed case: ** KVM_EL2_DTB
  2. Root cause: A Gunyah hypervisor is already running at EL2 (confirmed by boot log line: Hypervisor cold boot, version: gunyah-mobile-c487961e9 perf), preventing KVM from taking control of EL2
  3. Possible fix: This is not a kernel regression introduced by PR I2c target support #920 (which adds I2C target controller bindings unrelated to KVM). This is a platform configuration issue specific to hamoa-evk. To enable KVM on this platform, either: (1) disable the Gunyah hypervisor in the boot configuration/device tree so KVM can claim EL2, or (2) exclude KVM tests from the hamoa-evk test suite since this platform is configured to run Gunyah, not KVM. The test expectation is incorrect for this platform configuration.
  4. Detail analysis attachment: failed_case_job207850_4_detailed.md
  Case 5: KVM Infrastructure Failure — KVM/HYP Mode Unavailable
  1. Failed case: KVM Infrastructure Failure — KVM/HYP Mode Unavailable
  2. Root cause: KVM initialization failed because Gunyah hypervisor is already running at EL2 (HYP mode). The kernel log shows kvm [1]: HYP mode not available at boot time, and Gunyah hypervisor cold boot message confirms Hypervisor cold boot, version: gunyah-mobile-c487961e9. On ARM64, only one hypervisor can occupy EL2 at a time; Gunyah and KVM are mutually exclusive. This is a platform configuration issue specific to hamoa-evk, not a regression introduced by PR I2c target support #920 (which only adds I2C target controller device tree bindings).
  3. Possible fix: This is expected behavior on hamoa-evk when Gunyah hypervisor is enabled. To enable KVM testing: (1) disable Gunyah hypervisor in the boot configuration and rebuild the firmware/bootloader stack, or (2) exclude KVM test cases from the hamoa-evk LAVA job definition, as this platform is configured for Gunyah virtualization, not KVM. If KVM support is required, use a different platform or boot configuration without Gunyah.
  4. Detail analysis attachment: failed_case_job207850_5_detailed.md
  Case 6: 0_qcom-next-ci-premerge-tests
  1. Failed case: 0_qcom-next-ci-premerge-tests
  2. Root cause: LAVA test framework marked the overall test definition as failed because 5 individual test cases failed (Probe_Failure_Check, smmu, KVM_Driver, KVM_EL2_DTB, KVM_Infra). The kernel booted successfully and all tests executed to completion. The failure is not a kernel crash, build load failure, or infrastructure issue — it is the expected LAVA behavior when test cases report FAIL results.
  3. Possible fix: Review and address the 5 individual test failures: (1) Probe_Failure_Check reports probe failures for qcom_qseecom_uefisecapp (-EBUSY), qcom-spmi-lpg (-EINVAL), and regulatory.db firmware (-ENOENT); (2) smmu test failed (reason not visible in excerpt); (3) KVM tests failed because /dev/kvm is not present (KVM driver not loaded or CONFIG_KVM not properly enabled for this platform). These are genuine test failures, not false positives. If these failures are expected for hamoa-evk, update the test suite to skip them on this platform.
  4. Detail analysis attachment: failed_case_job207850_6_detailed.md
Job 207851 | SoC lemans-evk

LAVA job: https://lava-oss.qualcomm.com/scheduler/job/207851

Failed test cases in LAVA job 207851 (SoC: lemans-evk).

  Case 1: login-action
  1. Failed case: login-action
  2. Root cause: System hang during boot after kernel initialization completed at ~6.16 seconds; userspace init started (systemd-udevd) but device probing (PCIe, UFS) appears to have stalled, preventing the system from reaching a login prompt within the 200-second timeout.
  3. Possible fix: This is a pre-existing boot hang issue on lemans-evk unrelated to the PR (which adds QDU1000 I2C target driver). Re-trigger the CI job; if the hang persists, investigate PCIe/UFS driver initialization on lemans-evk (last messages show PCIe and UFS probing at ~6.1 seconds before hang). Consider increasing auto-login-action timeout from 10 minutes to 15 minutes as a temporary workaround, but the root cause is a device initialization hang that requires kernel-level debugging.
  4. Detail analysis attachment: failed_case_job207851_1_detailed.md
  Case 2: auto-login-action
  1. Failed case: auto-login-action
  2. Root cause: System hang after kernel boot — serial console stops producing output at 6.164 seconds (last message: "cpu cpu0: EM: created perf domain"), preventing login prompt from appearing. No kernel crash, panic, or oops detected; system appears to have frozen during late-stage device initialization or early userspace, likely unrelated to the PR changes (I2C target driver addition with no DT instantiation on lemans-evk).
  3. Possible fix: This appears to be a pre-existing platform issue on lemans-evk unrelated to the PR (which only adds I2C target driver code without DT nodes for this SoC). Re-trigger the LAVA job to confirm reproducibility. If the hang recurs, investigate lemans-evk-specific boot issues (PCIe initialization, power domain setup, or serial console driver) independently of this PR. If non-reproducible, mark as transient infrastructure issue.
  4. Detail analysis attachment: failed_case_job207851_2_detailed.md
  Case 3: System Hang — Login Timeout
  1. Failed case: System Hang — Login Timeout
  2. Root cause: The kernel booted successfully but the system hung at approximately 6.164 seconds during late-stage driver initialization (after Energy Model perf domain creation), preventing userspace from reaching the login prompt. The system became completely unresponsive with no console output for over 10 minutes until LAVA timed out. This is not a build load failure (kernel banner present at line 2656) nor a kernel crash (no panic/oops/BUG signature), but a complete system freeze during boot.
  3. Possible fix: This appears to be a pre-existing platform/infrastructure issue unrelated to the PR changes (which only add I2C target controller driver code and DT bindings that were never instantiated on lemans-evk). Re-trigger the CI job to confirm if this is a transient board/lab issue. If the hang reproduces consistently on lemans-evk, investigate the cpufreq/Energy Model initialization path and any interconnect/clock dependencies that may cause a deadlock during late boot on this specific SoC.
  4. Detail analysis attachment: failed_case_job207851_3_detailed.md
  Case 4: job
  1. Failed case: job
  2. Root cause: LAVA infrastructure timeout — the job exhausted all retry attempts waiting for login prompt after the kernel booted successfully but the system hung during late-boot driver initialization (last kernel message at timestamp [6.164471] during PCIe/UFS driver probe), preventing userspace from reaching a login-ready state.
  3. Possible fix: This is a LAVA job configuration issue, not a kernel regression introduced by the PR. The PR adds an I2C target controller driver for QDU1000 SoC, which is unrelated to lemans-evk. The boot hang appears to be a pre-existing platform issue (PCIe/UFS driver hang) or insufficient timeout configuration. Re-trigger the CI job with increased login-action timeout from 200s to 300s and auto-login-action block timeout from ~10min to 15min in the LAVA job definition. If the hang persists across multiple runs, investigate PCIe controller initialization on lemans-evk (last activity at qcom-pcie 1c00000.pcie and 1c10000.pcie probe).
  4. Detail analysis attachment: failed_case_job207851_4_detailed.md
Job 207852 | SoC qcs8300-ride

LAVA job: https://lava-oss.qualcomm.com/scheduler/job/207852

Failed test cases in LAVA job 207852 (SoC: qcs8300-ride).

  Case 1: Probe_Failure_Check
  1. Failed case: Probe_Failure_Check
  2. Root cause: Could not be determined confidently from available logs.
  3. Possible fix: Suppress these two known-benign patterns in the Probe_Failure_Check test script for qcs8300 platform: add exclusion rules for "cpufreq-dt.*failed register driver: -17" and "faux_driver regulatory.*failed with error -2" when corresponding functional tests pass. Alternatively, update test logic to cross-check functional test results before flagging probe failures as critical.
  4. Detail analysis attachment: failed_case_job207852_1_detailed.md
  Case 2: USBHost
  1. Failed case: USBHost
  2. Root cause: Test infrastructure failure — no USB device connected to the qcs8300-ride board's USB host port in the LAVA lab. The USB host controller (xhci-hcd) initialized successfully and the root hub is functional, but lsusb shows only "Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub" with no downstream devices enumerated. This is a lab hardware setup issue, not a kernel regression introduced by PR I2c target support #920 (which adds I2C target controller bindings unrelated to USB).
  3. Possible fix: Connect a USB device (e.g., USB flash drive, keyboard, or hub with devices) to the USB host port on the qcs8300-ride board in the LAVA lab. If the port is physically damaged or the cable is disconnected, repair the hardware setup. Re-run the test to verify USB device enumeration.
  4. Detail analysis attachment: failed_case_job207852_2_detailed.md
  Case 3: KVM_Driver
  1. Failed case: KVM_Driver
  2. Root cause: /dev/kvm device node is not present because the QCS8300 Ride platform is running under the Gunyah hypervisor (boot log shows "Hypervisor cold boot, version: gunyah-1cb9db980 perf"). KVM requires direct EL2 (hypervisor mode) access to create /dev/kvm, but when Linux runs as a guest under Gunyah, it operates at EL1 and cannot access EL2 virtualization extensions. CONFIG_KVM is enabled in the kernel config, but the KVM driver cannot initialize because the CPU virtualization features are not accessible from the guest context.
  3. Possible fix: This is a platform configuration issue, not a kernel regression. The KVM_Driver test should be skipped on platforms running under Gunyah hypervisor. Add a test gate that checks for Gunyah presence (via dmesg "Hypervisor cold boot" or /sys/hypervisor detection) and skips KVM tests when a hypervisor is detected. Alternatively, if KVM functionality is required on QCS8300, the platform must be configured to boot Linux directly at EL2 without Gunyah, or nested virtualization support must be enabled in Gunyah (if supported by the hypervisor version).
  4. Detail analysis attachment: failed_case_job207852_3_detailed.md
  Case 4: KVM_EL2_DTB
  1. Failed case: KVM_EL2_DTB
  2. Root cause: Could not be determined confidently from available logs.
  3. Possible fix: Disable KVM tests for QCS8300 platform in LAVA test suite, or add platform capability detection to skip KVM tests when EL2 is unavailable; alternatively, if EL2 support is expected on this platform, investigate firmware configuration to enable virtualization extensions.
  4. Detail analysis attachment: failed_case_job207852_4_detailed.md
  Case 5: KVM_Infra — KVM Infrastructure Test
  1. Failed case: KVM_Infra — KVM Infrastructure Test
  2. Root cause: KVM cannot initialize because the system is running as a guest VM under the Gunyah hypervisor (gunyah-1cb9db980). KVM requires EL2 (hypervisor) privileges to create /dev/kvm, but when Linux runs as a guest under Gunyah, it operates at EL1 and cannot access EL2 features. CONFIG_KVM is enabled in the kernel, but the KVM driver cannot probe successfully in this nested virtualization scenario.
  3. Possible fix: This is a test environment configuration issue, not a kernel bug. To run KVM tests on qcs8300-ride, the board must boot Linux directly on bare metal (without Gunyah hypervisor) so that Linux can operate at EL2. Either: (1) disable the Gunyah hypervisor in the boot configuration for this test job, or (2) exclude KVM tests from the test suite when running on Gunyah-based configurations, as nested virtualization (KVM-on-Gunyah) is not supported.
  4. Detail analysis attachment: failed_case_job207852_5_detailed.md
  Case 6: 0_qcom-next-ci-premerge-tests
  1. Failed case: 0_qcom-next-ci-premerge-tests
  2. Root cause: Could not be determined confidently from available logs.
  3. Possible fix: This is a pre-existing platform limitation, not introduced by PR I2c target support #920 (which only adds I2C target bindings). If KVM support is required on QCS8300: (1) verify hardware supports ARM virtualization extensions, (2) check bootloader/firmware configuration to ensure EL2 is available, (3) confirm platform is not running under another hypervisor, (4) add platform-specific KVM enablement if supported. For CI: mark KVM tests as expected-fail or skip on QCS8300 until platform support is confirmed.
  4. Detail analysis attachment: failed_case_job207852_6_detailed.md
Job 207853 | SoC qcs6490-rb3gen2

LAVA job: https://lava-oss.qualcomm.com/scheduler/job/207853

Failed test cases in LAVA job 207853 (SoC: qcs6490-rb3gen2).

  Case 1: Probe_Failure_Check — cfg80211 regulatory.db firmware load failure
  1. Failed case: Probe_Failure_Check — cfg80211 regulatory.db firmware load failure
  2. Root cause: The cfg80211 wireless regulatory subsystem cannot load the regulatory.db firmware file (error -2: ENOENT - file not found). This is a pre-existing test image issue where the required firmware file is missing from /lib/firmware/. The failure is not introduced by PR I2c target support #920, which only adds an I2C target controller driver unrelated to wireless functionality.
  3. Possible fix: Add the regulatory.db firmware file to the test image filesystem under /lib/firmware/. The file is provided by the wireless-regdb package in most distributions. Alternatively, suppress this specific firmware error in the Probe_Failure_Check test logic if wireless regulatory functionality is not required for qcs6490-rb3gen2 CI validation.
  4. Detail analysis attachment: failed_case_job207853_1_detailed.md
  Case 2: USBHost
  1. Failed case: USBHost
  2. Root cause: Could not be determined confidently from available logs.
  3. Possible fix: Connect at least one USB device (e.g., USB flash drive, keyboard, or hub) to the board's USB host port before running the USBHost test. If the test is intended to validate USB host controller functionality without requiring external devices, update the test script to check for controller presence and readiness (e.g., verify /sys/bus/usb/devices/ structure or lsusb -t output) instead of requiring enumerated devices.
  4. Detail analysis attachment: failed_case_job207853_2_detailed.md
  Case 3: KVM_Driver
  1. Failed case: KVM_Driver
  2. Root cause: KVM initialization failed because EL2 (HYP mode) is occupied by the Gunyah hypervisor running on qcs6490-rb3gen2; KVM requires exclusive access to EL2 and cannot co-exist with another hypervisor.
  3. Possible fix: This is a platform configuration issue, not a kernel regression. The test expectation is incorrect for this platform. Either: (1) disable KVM tests on Gunyah-enabled platforms, or (2) boot without Gunyah if KVM functionality is required. The PR (I2C target controller driver) is unrelated and does not cause this failure.
  4. Detail analysis attachment: failed_case_job207853_3_detailed.md
  Case 4: KVM_EL2_DTB — KVM Initialization Failure (HYP mode not available)
  1. Failed case: KVM_EL2_DTB — KVM Initialization Failure (HYP mode not available)
  2. Root cause: KVM cannot initialize because the system is running under the Gunyah hypervisor at EL1; KVM requires the CPU to be at EL2 (HYP mode) to create the /dev/kvm device node. The boot log shows "Hypervisor cold boot, version: gunyah-1cb9db980" and "kvm [1]: HYP mode not available" at kernel initialization.
  3. Possible fix: This is a platform configuration issue, not a kernel regression. The qcs6490-rb3gen2 board is configured to boot with the Gunyah hypervisor, which prevents KVM from running. To enable KVM testing: (1) reconfigure the board firmware to boot Linux directly at EL2 without a hypervisor, or (2) exclude KVM tests from the CI test suite for boards running under Gunyah, or (3) use nested virtualization if Gunyah supports it (requires Gunyah configuration changes, not kernel changes).
  4. Detail analysis attachment: failed_case_job207853_4_detailed.md
  Case 5: KVM_Infra — KVM /dev/kvm device node unavailable
  1. Failed case: KVM_Infra — KVM /dev/kvm device node unavailable
  2. Root cause: KVM cannot initialize because HYP (EL2 hypervisor) mode is not available on qcs6490-rb3gen2. The kernel message "kvm [1]: HYP mode not available" at boot indicates that the platform is running under the Gunyah hypervisor in a configuration that does not expose EL2 to the Linux kernel, preventing KVM from creating the /dev/kvm device node.
  3. Possible fix: This is a pre-existing platform/firmware configuration issue, not introduced by the PR (which only adds I2C target controller bindings). The qcs6490-rb3gen2 board runs under Gunyah hypervisor which reserves EL2 for itself. To enable KVM on this platform, either: (1) reconfigure the Gunyah hypervisor to allow nested virtualization or EL2 passthrough to the primary VM, or (2) use a different test platform that boots Linux directly at EL2 without an intervening hypervisor. Mark this test as expected-fail or skip for rb3gen2 until platform support is added.
  4. Detail analysis attachment: failed_case_job207853_5_detailed.md
  Case 6: 0_qcom-next-ci-premerge-tests
  1. Failed case: 0_qcom-next-ci-premerge-tests
  2. Root cause: KVM virtualization is not available on qcs6490-rb3gen2 (Kodiak) because the platform does not support HYP (EL2) mode — kernel reports "kvm [1]: HYP mode not available" at boot. This is a platform hardware/firmware limitation, not a kernel regression.
  3. Possible fix: Exclude KVM tests from the CI test suite for qcs6490-rb3gen2, or mark them as expected failures for this platform. The PR changes (I2C target controller) are unrelated to KVM and did not cause this failure.
  4. Detail analysis attachment: failed_case_job207853_6_detailed.md
Job 207854 | SoC purwa-evk

LAVA job: https://lava-oss.qualcomm.com/scheduler/job/207854

Failed test cases in LAVA job 207854 (SoC: purwa-evk).

  Case 1: Probe_Failure_Check
  1. Failed case: Probe_Failure_Check
  2. Root cause: Could not be determined confidently from available logs.
  3. Possible fix: Suppress this test failure as a false positive for PR I2c target support #920. The probe failures are pre-existing platform issues on purwa-evk unrelated to the I2C target controller changes. To resolve the underlying issues: (1) add PCIe PHY init sequences for x1e80100 to qcom-qmp-pcie-phy driver, (2) fix the multi-LED device tree node under qcom-spmi-lpg, (3) include regulatory.db in the rootfs image, and (4) verify QSEE uefisecapp availability in TrustZone firmware for x1e80100.
  4. Detail analysis attachment: failed_case_job207854_1_detailed.md
  Case 2: smmu
  1. Failed case: smmu
  2. Root cause: SMMU validation test failed because multiple critical masters (USB controllers a0f8800.usb, a2f8800.usb, a4f8800.usb, a6f8800.usb, a8f8800.usb and Video codec aa00000.video-codec) are missing IOMMU group attachments on the purwa-evk platform; this is a platform device tree or hardware configuration issue, not a kernel crash or SMMU functional failure.
  3. Possible fix: Add missing iommus properties to the device tree nodes for USB controllers a0f8800.usb, a2f8800.usb, a4f8800.usb, a6f8800.usb, a8f8800.usb and video-codec aa00000.video-codec in the purwa-evk device tree, or update the SMMU test's critical master list to exclude these devices if they are not expected to have IOMMU protection on this platform.
  4. Detail analysis attachment: failed_case_job207854_2_detailed.md
  Case 3: KVM_Driver
  1. Failed case: KVM_Driver
  2. Root cause: KVM initialization failed with "HYP mode not available" because the purwa-evk platform runs Linux as a guest under the Gunyah hypervisor, which does not expose EL2 (hypervisor mode) access to the guest OS. KVM requires EL2 privileges to create virtual machines, but these are owned by Gunyah, not the Linux kernel.
  3. Possible fix: This is a platform configuration issue, not a kernel regression. The purwa-evk board is not configured to support nested virtualization (Linux-as-host running KVM VMs under Gunyah). Either: (1) exclude KVM tests from the purwa-evk CI test suite, or (2) configure the platform to boot Linux at EL2 (bare-metal or with nested virt support) if KVM functionality is required for this board.
  4. Detail analysis attachment: failed_case_job207854_3_detailed.md
  Case 4: KVM Driver Initialization Failure — HYP mode not available
  1. Failed case: KVM Driver Initialization Failure — HYP mode not available
  2. Root cause: KVM driver fails to initialize because the kernel is not running at EL2 (Hypervisor Exception Level). The bootloader on Purwa EVK is not configured to boot the kernel at EL2 or grant EL2 access, preventing KVM from enabling virtualization support. Without EL2 access, /dev/kvm cannot be created and all KVM-dependent tests fail.
  3. Possible fix: Configure the Purwa EVK bootloader (ABL/UEFI) to boot the Linux kernel at EL2 instead of EL1. This typically requires setting a bootloader flag or updating the boot chain configuration to preserve EL2 mode during kernel handoff. Alternatively, if the platform does not support EL2 in production firmware, disable KVM tests for this platform in the CI test suite.
  4. Detail analysis attachment: failed_case_job207854_4_detailed.md
  Case 5: ** KVM_Infra — Platform Hardware Limitation (KVM/Virtualization Not Supported)
  1. Failed case: ** KVM_Infra — Platform Hardware Limitation (KVM/Virtualization Not Supported)
  2. Root cause: ** The Purwa IoT EVK platform does not support ARM64 hardware virtualization (EL2/HYP mode unavailable). During kernel boot, KVM initialization detected "HYP mode not available" (line 3303) and aborted, preventing /dev/kvm device node creation. This is a pre-existing platform limitation, not a kernel bug or PR-introduced regression.
  3. Possible fix: Exclude KVM tests from the Purwa IoT EVK LAVA test suite by updating the job definition to skip Virtualization/KVM test cases for this platform. Add platform capability metadata (kvm_supported: false) to prevent future false failures. If virtualization is required, enable EL2 in the platform firmware/bootloader (high effort, requires TZ/ABL changes).
  4. Detail analysis attachment: failed_case_job207854_5_detailed.md
  Case 6: ** KVM_Infra
  1. Failed case: ** KVM_Infra
  2. Root cause: ** The /dev/kvm device node is not present on the purwa-evk board despite CONFIG_KVM being enabled in the kernel, indicating either the KVM module is not loaded (if built as a module), the hardware does not support ARM64 virtualization extensions (EL2), or KVM initialization failed silently during boot.
  3. Possible fix: Verify the kernel config to confirm if CONFIG_KVM=y (built-in) or CONFIG_KVM=m (module). If module, ensure it is loaded before the test runs with modprobe kvm && modprobe kvm-arm. If built-in, check dmesg for KVM initialization errors and verify that the purwa-evk firmware/bootloader has EL2 (hypervisor mode) enabled. If the hardware does not support virtualization, exclude the KVM_Infra test from the purwa-evk test suite or modify the test to report SKIP instead of FAIL for platforms without virtualization support.
  4. Detail analysis attachment: failed_case_job207854_6_detailed.md
Job 207855 | SoC qcs9100-ride

LAVA job: https://lava-oss.qualcomm.com/scheduler/job/207855

Failed test cases in LAVA job 207855 (SoC: qcs9100-ride).

  Case 1: Probe_Failure_Check
  1. Failed case: Probe_Failure_Check
  2. Root cause: Pre-existing platform-specific probe failures on qcs9100-ride: (1) Aquantia AQR115C Ethernet PHY probe fails with -EINVAL (-22) due to missing firmware-name DT property, (2) regulatory.db firmware missing from rootfs (-ENOENT), and (3) four PMIC temp-alarm devices remain in deferred probe state, likely due to missing thermal zone dependencies. None of these failures are introduced by PR I2c target support #920, which only adds an unrelated I2C target driver.
  3. Possible fix: These are known pre-existing issues on qcs9100-ride and should be suppressed in CI or fixed independently: (1) Add firmware-name property to Aquantia PHY DT node or provide the firmware file, (2) include regulatory.db in the rootfs image, (3) investigate thermal zone configuration for PMIC temp-alarm devices. PR I2c target support #920 can proceed as these failures are not regressions.
  4. Detail analysis attachment: failed_case_job207855_1_detailed.md
  Case 2: smmu
  1. Failed case: smmu
  2. Root cause: Video codec device aa00000.video-codec at address 0xaa00000 is missing IOMMU group attachment on qcs9100-ride platform; the SMMU test expects all critical DMA masters (GPU, Display, USB, Video) to be protected by IOMMU groups, but the video codec device tree node lacks the required iommus property or the video codec driver failed to probe/attach to its IOMMU domain.
  3. Possible fix: Add the missing iommus property to the aa00000.video-codec device tree node in arch/arm64/boot/dts/qcom/qcs9100.dtsi (or the board-specific overlay) to bind the video codec to its SMMU context bank, or investigate why the video codec driver is not attaching to the IOMMU if the DT property is already present.
  4. Detail analysis attachment: failed_case_job207855_2_detailed.md
  Case 3: USBHost
  1. Failed case: USBHost
  2. Root cause: Could not be determined confidently from available logs.
  3. Possible fix: Connect USB test peripherals (USB storage device, keyboard, or hub with devices) to qcs9100-ride board's USB ports in the LAVA lab. Alternatively, update LAVA job definition to skip USBHost test for boards without USB peripherals, or mark it as optional/informational. This is a lab infrastructure issue, not a kernel regression — PR I2c target support #920 should not be blocked by this failure.
  4. Detail analysis attachment: failed_case_job207855_3_detailed.md
  Case 4: 0_qcom-next-ci-premerge-tests
  1. Failed case: 0_qcom-next-ci-premerge-tests
  2. Root cause: LAVA test framework marked the test definition as "unfinished" despite all individual test cases completing successfully — the test runner script emitted <LAVA_TEST_RUNNER EXIT> but did not send the expected LAVA_SIGNAL_ENDRUN signal that LAVA was waiting for to mark the test run as complete.
  3. Possible fix: Update the test runner script (/lava-207855/0/tests/0_qcom-next-ci-premerge-tests/run.sh or Runner/utils/result_parse.sh) to emit lava-test-raise LAVA_SIGNAL_ENDRUN or the equivalent LAVA end-of-run signal after all test cases complete and before exiting, ensuring LAVA recognizes the test run as finished.
  4. Detail analysis attachment: failed_case_job207855_4_detailed.md

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