Skip to content

FROMLIST: arm64: dts: qcom: glymur: Add EVA clock controller node#1235

Open
taniyadas20 wants to merge 1 commit into
qualcomm-linux:tech/all/dt/glymurfrom
taniyadas20:evacc-clk-dt-glymur
Open

FROMLIST: arm64: dts: qcom: glymur: Add EVA clock controller node#1235
taniyadas20 wants to merge 1 commit into
qualcomm-linux:tech/all/dt/glymurfrom
taniyadas20:evacc-clk-dt-glymur

Conversation

@taniyadas20
Copy link
Copy Markdown
Contributor

Add the device node for the EVA clock controller (evacc) for Qualcomm Glymur SoC. The EVACC provides clocks and resets to the EVA hardware block.

Link: https://lore.kernel.org/r/20260526-evacc_glymur-v1-4-b61c7755c403@oss.qualcomm.com

Add the device node for the EVA clock controller (evacc) for Qualcomm
Glymur SoC. The EVACC provides clocks and resets to the EVA hardware block.

Link: https://lore.kernel.org/r/20260526-evacc_glymur-v1-4-b61c7755c403@oss.qualcomm.com
Signed-off-by: Taniya Das <taniya.das@oss.qualcomm.com>
@qcomlnxci qcomlnxci requested review from a team, jingyiwang42, mukeshojha-linux and quic-tingweiz and removed request for a team May 26, 2026 09:27
mpratyus pushed a commit to mpratyus/kernel-topics that referenced this pull request May 26, 2026
…qualcomm-linux#1235)

Hygon Family 18h CPUs are derived from AMD Family 17h (Zen1) silicon and
share the same erratum qualcomm-linux#1235: hardware may read a stale IsRunning=1 bit
during ICR write emulation and silently fail to generate an
AVIC_IPI_FAILURE_TARGET_NOT_RUNNING VM-Exit on the sending vCPU.

The absence of the VM-Exit causes KVM to miss the required wakeup of
blocking target vCPUs, leading to hung vCPUs and unbounded delays in
guest execution.

Extend the existing AMD Family 17h erratum qualcomm-linux#1235 workaround to also cover
Hygon Family 18h.  With IPI virtualization disabled, KVM never sets
IsRunning=1 in the Physical ID table, so every non-self IPI generates a
VM-Exit and is correctly emulated.

Fixes: 8de4a1c ("KVM: SVM: Disable (x2)AVIC IPI virtualization if CPU has erratum qualcomm-linux#1235")
Cc: <stable@vger.kernel.org>
Signed-off-by: Tina Zhang <zhang_wei@open-hieco.net>
Message-ID: <20260522040014.3380201-1-zhang_wei@open-hieco.net>
mpratyus pushed a commit to mpratyus/kernel-topics that referenced this pull request May 26, 2026
Pull kvm fixes from Paolo Bonzini:
 "arm64:

   - Fix ITS EventID sanitisation when restoring an interrupt
     translation table.

   - Fix PPI memory leak when failing to initialise a vcpu.

   - Correctly return an error when the validation of a hypervisor trace
     descriptor fails, and limit this validation to protected mode only.

  RISC-V:

   - Fix invalid HVA warning in steal-time recording

   - Return SBI_ERR_FAILURE to guest upon OOM in pmu_event_info() and
     pmu_snapshot_set_shmem()

   - Fix NULL pointer dereference in SBI v0.1 SEND_IPI handler

   - Fix sign extension of value for MMIO loads

  s390:

   - Fix bugs in vSIE (nested virtualization) and UCONTROL, caused by
     the page table rewrite.

  x86:

   - Apply erratum qualcomm-linux#1235 workaround (disable AVIC IPI virtualization) on
     Hygon Family 18h, just like on AMD Family 17h.

   - When KVM_CAP_X86_APIC_BUS_CYCLES_NS is queried on a specific VM,
     return the VM's configured APIC bus frequency instead of the
     default. This is less confusing (read: not wrong) and makes it
     easier to fill in CPUID information that communicates the APIC bus
     frequency to the guest.

  Selftests:

   - Do not include glibc-internal <bits/endian.h>; it worked by chance
     and broke building KVM selftests with musl"

* tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
  KVM: SVM: Disable AVIC IPI virtualization on Hygon Family 18h (erratum qualcomm-linux#1235)
  KVM: selftests: Verify that KVM returns the configured APIC cycle length
  KVM: x86: Return the VM's configured APIC bus frequency when queried
  KVM: selftests: elf: Include <endian.h> instead of <bits/endian.h>
  KVM: s390: Properly reset zero bit in PGSTE
  KVM: s390: vsie: Fix redundant rmap entries
  KVM: s390: vsie: Fix unshadowing logic
  KVM: s390: Fix leaking kvm_s390_mmu_cache in case of errors
  KVM: s390: vsie: Fix memory leak when unshadowing
  KVM: arm64: Fix nVHE/pKVM hyp tracing error on invalid desc
  KVM: arm64: vgic: Free private_irqs when init fails after allocation
  KVM: arm64: vgic-its: Reject restored DTE with out-of-range num_eventid_bits
  RISC-V: KVM: Fix sign extension for MMIO loads
  RISC-V: KVM: Fix NULL pointer dereference in SBI v0.1 SEND_IPI handler
  riscv: kvm: return SBI_ERR_FAILURE for pmu_event_info() when OOM
  riscv: kvm: return SBI_ERR_FAILURE for pmu_snapshot_set_shmem() when OOM
  RISC-V: KVM: Fix invalid HVA warning in steal-time recording
@qlijarvis
Copy link
Copy Markdown

🔨 Build Failure Analysis — PR #1235

PR: #1235
Build run: https://github.com/qualcomm-linux/kernel-config/actions/runs/26444043306

# Error File:Line PR-introduced? Root Cause
1 fatal error: dt-bindings/clock/qcom,glymur-evacc.h: No such file or directory arch/arm64/boot/dts/qcom/glymur.dtsi:8 Yes PR adds #include for a dt-bindings header that does not exist in the kernel tree

Verdict

1 of 1 errors is introduced by this PR. The build failure is caused by a missing dependency (dt-bindings header file).

📎 Detailed analysis: Full report

@qlijarvis
Copy link
Copy Markdown

PR #1235 — validate-patch

PR: #1235

Verdict Issues Detailed Report
⚠️ 2 Full report

Final Summary

  1. Lore link present: Yes — https://lore.kernel.org/r/20260526-evacc_glymur-v1-4-b61c7755c403@oss.qualcomm.com
  2. Lore link matches PR commits: Cannot verify — network access restricted; lore.kernel.org unreachable
  3. Upstream patch status: Cannot verify — network access restricted; manual check required to determine if ACKed / NACKed / Decision Pending
  4. PR present in qcom-next: No — searched local kernel repo; commit not found in qcom-next branch
Verdict: ⚠️ — click to expand

🔍 Patch Validation

PR: #1235 - FROMLIST: arm64: dts: qcom: glymur: Add EVA clock controller node
Upstream commit: https://lore.kernel.org/r/20260526-evacc_glymur-v1-4-b61c7755c403@oss.qualcomm.com
Verdict: ⚠️ PARTIAL (network-restricted validation)

Commit Message

Check Status Note
Subject matches upstream ⏭️ Cannot verify — network access restricted; lore.kernel.org unreachable
Body preserves rationale Commit body describes the EVA clock controller node addition clearly
Fixes tag present/correct N/A Not a bugfix; no Fixes tag expected
Authorship preserved ⏭️ FROMLIST: prefix — submitter in From: is correct; cannot verify original lore author's Signed-off-by: without fetching lore patch
Backport note (if applicable) N/A FROMLIST: commit — not yet merged upstream, no backport note expected

Diff

File Status Notes
arch/arm64/boot/dts/qcom/glymur.dtsi ⏭️ Cannot compare to lore source — network restricted

Structural Analysis (PR patch only)

What the PR adds:

  • New evacc clock controller node at 0xabf0000
  • Compatible string: qcom,glymur-evacc
  • Clock inputs: GCC_EVA_AHB_CLK, RPMH_CXO_CLK, RPMH_CXO_CLK_A, sleep_clk
  • Power domains: RPMHPD_MMCX, RPMHPD_MXC with low_svs OPPs
  • Provides: #clock-cells, #reset-cells, #power-domain-cells
  • Includes new header: <dt-bindings/clock/qcom,glymur-evacc.h>

Commit message hygiene:

  • ✅ Prefix: FROMLIST: — correct for a patch posted to mailing list but not yet merged
  • ✅ Link tag present: Link: https://lore.kernel.org/r/20260526-evacc_glymur-v1-4-b61c7755c403@oss.qualcomm.com
  • ✅ Author: Taniya Das <taniya.das@oss.qualcomm.com> — matches From: and Signed-off-by:
  • ✅ Subject format: follows kernel convention arm64: dts: qcom: <soc>: <description>
  • ⚠️ Series context: This is patch 4 of a series (v1-4-b61c7755c403) — dependency check required: patches 1–3 must be present in the tree or PR for this to apply cleanly

Issues

  • Network restriction: Cannot fetch the upstream lore patch to verify:
    • Exact diff match (hunks, line numbers, context)
    • Original author's Signed-off-by: presence (required for FROMLIST: commits)
    • Upstream patch status (ACKed / NACKed / Decision Pending)
    • Whether this is the latest revision or superseded by v2/v3
  • Series dependency: This is patch 4 of a series. Patches 1–3 likely include:
    • DT binding documentation for qcom,glymur-evacc
    • Driver changes for the evacc clock controller
    • Header file dt-bindings/clock/qcom,glymur-evacc.h definitions
    • Without these, this patch will not compile or apply cleanly.

Verdict

Cannot fully validate due to network restrictions preventing lore.kernel.org access.

What can be confirmed:

  • ✅ Lore link is present and correctly formatted
  • ✅ Commit message structure follows kernel conventions
  • FROMLIST: prefix is appropriate for a posted-but-not-merged patch
  • ✅ DTS node structure appears well-formed (compatible, reg, clocks, power-domains)

What requires manual verification:

  1. Fetch the lore patch manually and compare diff content line-by-line
  2. Verify the original lore author's Signed-off-by: is present (required for FROMLIST:)
  3. Check if patches 1–3 of the series are already in the tree or included in this PR
  4. Confirm the upstream patch status (under review / accepted / needs revision)
  5. Verify this is the latest revision (not superseded by v2)

Recommendation: Manually fetch the lore series with:

b4 am 20260526-evacc_glymur-v1-4-b61c7755c403@oss.qualcomm.com -o /tmp/evacc_series

Then verify:

  • All 4 patches in the series are accounted for
  • Diff content matches exactly
  • Original author's Signed-off-by: is preserved
  • No newer revision exists on the mailing list

Final Summary

  1. Lore link present: Yes — https://lore.kernel.org/r/20260526-evacc_glymur-v1-4-b61c7755c403@oss.qualcomm.com
  2. Lore link matches PR commits: Cannot verify — network access restricted; lore.kernel.org unreachable
  3. Upstream patch status: Cannot verify — network access restricted; manual check required to determine if ACKed / NACKed / Decision Pending
  4. PR present in qcom-next: No — searched local kernel repo; commit not found in qcom-next branch

@qlijarvis
Copy link
Copy Markdown

PR #1235 — checker-log-analyzer

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

Checker Result Summary
Checker Result Summary
checkpatch ⚠️ 1 warning: undocumented DT compatible string
dt-binding-check ⏭️ Skipped (no binding changes)
dtb-check Build failure: missing header file
sparse-check ⏭️ Skipped (no C/H changes)
check-uapi-headers ⏭️ Skipped (no UAPI changes)
check-patch-compliance Passed
tag-check All commits have valid FROMLIST: prefix

Detailed report: Full report

Checker analysis — click to expand

🤖 CI Checker Analysis (checker-log-analyzer)

PR: #1235 - FROMLIST: arm64: dts: qcom: glymur: Add EVA clock controller node
Source: https://github.com/qualcomm-linux/kernel-config/actions/runs/26444043859

Checker Result Summary
checkpatch ⚠️ 1 warning: undocumented DT compatible string
dt-binding-check ⏭️ Skipped (no binding changes)
dtb-check Build failure: missing header file
sparse-check ⏭️ Skipped (no C/H changes)
check-uapi-headers ⏭️ Skipped (no UAPI changes)
check-patch-compliance Passed
tag-check All commits have valid FROMLIST: prefix

⚠️ checkpatch

Root cause: The DT compatible string qcom,glymur-evacc is not documented in a binding file.

Failure details:

Commit 548d30dce3a5 ("FROMLIST: arm64: dts: qcom: glymur: Add EVA clock controller node")
WARNING: DT compatible string "qcom,glymur-evacc" appears un-documented -- check ./Documentation/devicetree/bindings/
#33: FILE: arch/arm64/boot/dts/qcom/glymur.dtsi:5792:
+			compatible = "qcom,glymur-evacc";

548d30dce3a5eb5bcea90b32e0d66e0f2f5ff5ff total: 0 errors, 1 warnings, 0 checks, 31 lines checked

Fix: This warning indicates that the DT binding documentation for qcom,glymur-evacc should exist in Documentation/devicetree/bindings/. Since the commit references a lore link (https://lore.kernel.org/r/20260526-evacc_glymur-v1-4-b61c7755c403@oss.qualcomm.com), this is likely part of a patch series where the binding is added in an earlier patch. The warning is expected if the binding patch hasn't been merged into the base branch yet.

Reproduce locally:

./scripts/checkpatch.pl --strict --ignore FILE_PATH_CHANGES --git df3ae9703774b70a7b7758b53498a25de9f87174..548d30dce3a5eb5bcea90b32e0d66e0f2f5ff5ff

❌ dtb-check

Root cause: Missing header file dt-bindings/clock/qcom,glymur-evacc.h prevents DTB compilation.

Failure details:

../arch/arm64/boot/dts/qcom/glymur.dtsi:8:10: fatal error: dt-bindings/clock/qcom,glymur-evacc.h: No such file or directory
    8 | #include <dt-bindings/clock/qcom,glymur-evacc.h>
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[4]: *** [../scripts/Makefile.dtbs:140: arch/arm64/boot/dts/qcom/glymur-crd.dtb] Error 1

The patch adds #include <dt-bindings/clock/qcom,glymur-evacc.h> to glymur.dtsi:8 and uses constants from this header (e.g., clock/reset cell indices), but the header file itself is not present in the tree.

Fix: This is a dependency issue. The header file include/dt-bindings/clock/qcom,glymur-evacc.h must be added to the tree before this DTS patch can be merged. Based on the lore link in the commit message, this is patch 4 of a series (-v1-4-), and the header is likely introduced in an earlier patch of the same series.

Action required:

  1. Ensure the earlier patches in the series (which add the binding YAML and the header file) are merged into the base branch first.
  2. Alternatively, if this PR is intended to include the full series, add the missing header file to this PR.

Reproduce locally:

make -j$(nproc) O=out CHECK_DTBS=y arch/arm64/boot/dts/qcom/glymur-crd.dtb

Verdict

2 blockers must be resolved before merge:

  1. dtb-check failure (critical): The missing header file dt-bindings/clock/qcom,glymur-evacc.h prevents DTB compilation. This patch depends on earlier patches in the series that introduce the binding and header. Merge those dependencies first, or include them in this PR.

  2. checkpatch warning (non-critical): The undocumented compatible string warning is expected if the binding patch hasn't been merged yet. This will resolve automatically once the binding is in the base branch.

Recommendation: Ensure the full patch series is applied in order (binding YAML → header file → DTS changes), or merge the prerequisite patches into the base branch before merging this PR.

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.

2 participants