Skip to content

Add ethernet support on Shikra#709

Merged
sgaud-quic merged 13 commits into
qualcomm-linux:qcom-6.18.yfrom
ayaan-anwar:shikra_ethernet_qli2
Jun 18, 2026
Merged

Add ethernet support on Shikra#709
sgaud-quic merged 13 commits into
qualcomm-linux:qcom-6.18.yfrom
ayaan-anwar:shikra_ethernet_qli2

Conversation

@ayaan-anwar

@ayaan-anwar ayaan-anwar commented Jun 15, 2026

Copy link
Copy Markdown
Contributor

This PR first reverts an UPSTREAM_STALLED change that was brought in for Talos.
The issue is resolved by the Shikra RGMII rework in the other commits which has been backported from LKML.
The changes have been tested on Shikra CQM, CQS and IQS boards.
To support the Shikra first-post patches, we also need to backport three upstream commits from https://lore.kernel.org/all/aR76i0HjXitfl7xk@shell.armlinux.org.uk/

Therefore, the commits are organized as:

  1. Commit 1: revert downstream change
  2. Commit 2 -4: backport of upstream commits (introduce helper functions that are used by Shikra patches)
  3. Commit 5: FROMLIST dt-binding change
  4. Commits 6-9: FROMLIST driver changes
  5. Commit 10-13: FROMLIST dts changes

Lore Link: https://lore.kernel.org/netdev/20260612-shikra_ethernet-v1-0-f0f4a1d19929@oss.qualcomm.com/
CRs-Fixed: 4570559, 4570571

@ayaan-anwar ayaan-anwar requested review from a team, idlethread, quic-tingweiz and rrnayak June 15, 2026 05:39
@qswat-orbit-external

Copy link
Copy Markdown

Merge Check Failed: No Change Task Found

No associated change tasks found for CR 4570559 on any of the following entities:

Entities:

  • kernel.qli.2.0

CR: 4570559

Please ensure the CR has a change task associated with at least one of the entities for this branch.

@ayaan-anwar ayaan-anwar force-pushed the shikra_ethernet_qli2 branch from db7abe2 to 7f2a0fb Compare June 15, 2026 05:45
@ayaan-anwar

Copy link
Copy Markdown
Contributor Author

qli-2.0 GA Critical Fix

@ayaan-anwar ayaan-anwar marked this pull request as draft June 15, 2026 06:25
@ayaan-anwar ayaan-anwar force-pushed the shikra_ethernet_qli2 branch from 7f2a0fb to 75422b1 Compare June 15, 2026 13:03
@ayaan-anwar ayaan-anwar marked this pull request as ready for review June 15, 2026 13:03
@qlijarvis

Copy link
Copy Markdown

PR #709 — validate-patch

PR: #709

Verdict Issues Detailed Report
⚠️ 9 Full report

Final Summary

  1. Lore link present: Yes — patches 02-10 include Link tags pointing to https://lore.kernel.org/netdev/20260612-shikra_ethernet-v1-0-f0f4a1d19929@oss.qualcomm.com/; patch 01 (revert) has no Link tag

  2. Lore link matches PR commits: Cannot verify — network restrictions prevent fetching from lore.kernel.org. However, the Link tags all point to the series cover letter (-v1-0-) rather than individual patch message-ids, which is non-standard.

  3. Upstream patch status: FROMLIST — patches 02-10 are marked FROMLIST indicating they have been posted to netdev mailing list but not yet merged. Patch 01 is a revert of a previous FROMLIST patch that stalled upstream.

  4. PR present in qcom-next: Not checked — no kernel tree access per constraints. This is a FROMLIST series expected to be integrated into vendor tree before upstream acceptance.

Verdict: ⚠️ — click to expand

🔍 Patch Validation

PR: #709 - Shikra Ethernet Support (10 patches)
Upstream commit: N/A (FROMLIST series - not yet merged upstream)
Verdict: ⚠️ PARTIAL

Commit Message Analysis

Patch 01/10: Revert "FROMLIST: net: stmmac: Inverse the phy-mode definition"

Check Status Note
Subject matches upstream N/A Revert commit - no upstream equivalent
Body preserves rationale Clear reason provided: "UPSTREAM_STALLED. Replace with RGMII rework"
Fixes tag present/correct N/A Revert commit - no Fixes tag needed
Authorship preserved Mohd Ayaan Anwar
Backport note (if applicable) N/A Not a backport

Patches 02-10/10: FROMLIST series

Check Status Note
Subject matches upstream ⚠️ Cannot verify - lore link inaccessible due to network restrictions
Body preserves rationale All patches have detailed commit messages
Fixes tag present/correct N/A New feature patches - no Fixes tags needed
Authorship preserved All authored by Mohd Ayaan Anwar
Backport note (if applicable) N/A FROMLIST - not yet merged

Diff Analysis

File Status Notes
drivers/net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c Multiple logical changes across patches 01, 03-06
Documentation/devicetree/bindings/net/qcom,ethqos.yaml Adds qcom,shikra-ethqos compatible and extended clock config
arch/arm64/boot/dts/qcom/shikra.dtsi Adds ethernet0 and ethernet1 nodes
arch/arm64/boot/dts/qcom/shikra-cqm-evk.dts Enables ethernet0 with PHY config
arch/arm64/boot/dts/qcom/shikra-cqs-evk.dts Enables ethernet0 with PHY config
arch/arm64/boot/dts/qcom/shikra-iqs-evk.dts Enables both ethernet0 and ethernet1

Issues

Patch 01/10 - Revert commit:

  • ⚠️ Missing Link tag: The revert commit does not include a Link: tag pointing to the lore discussion. While this is a revert of a FROMLIST patch that was stalled, best practice would be to include the Link tag from the original patch being reverted for traceability.
  • ⚠️ Revert rationale could be more specific: The reason states "UPSTREAM_STALLED" but doesn't explain why it stalled or link to any upstream discussion about the stall.

Patches 02-10/10 - FROMLIST series:

  • ⚠️ Link tag points to cover letter: All patches use the same Link pointing to the series cover letter (20260612-shikra_ethernet-v1-0-f0f4a1d19929@oss.qualcomm.com). Standard practice is for each patch to link to its specific message-id (e.g., -1-, -2-, etc., not -0-).
  • ⚠️ Cannot verify upstream content: Due to network restrictions, cannot fetch from lore.kernel.org to verify that the PR patches match the posted upstream patches exactly.
  • Consistent authorship: All patches properly authored and signed-off by Mohd Ayaan Anwar.
  • Logical patch organization: The series is well-structured: dt-bindings first, then driver changes, then DTS additions.

General observations:

  • FROMLIST prefix used correctly: Indicates patches posted upstream but not yet merged.
  • Commit messages are detailed: Each patch includes clear rationale and technical details.
  • No obvious diff corruption: All patches apply cleanly with proper context.

Verdict

Merge with minor concerns. The patches are well-structured and follow kernel conventions, but have two issues:

  1. Patch 01 (revert) should include a Link tag for traceability
  2. Patches 02-10 should use per-patch message-ids in Link tags rather than all pointing to the cover letter

These are minor metadata issues that don't affect functionality. The code changes appear sound and follow proper kernel style.

Final Summary

  1. Lore link present: Yes — patches 02-10 include Link tags pointing to https://lore.kernel.org/netdev/20260612-shikra_ethernet-v1-0-f0f4a1d19929@oss.qualcomm.com/; patch 01 (revert) has no Link tag

  2. Lore link matches PR commits: Cannot verify — network restrictions prevent fetching from lore.kernel.org. However, the Link tags all point to the series cover letter (-v1-0-) rather than individual patch message-ids, which is non-standard.

  3. Upstream patch status: FROMLIST — patches 02-10 are marked FROMLIST indicating they have been posted to netdev mailing list but not yet merged. Patch 01 is a revert of a previous FROMLIST patch that stalled upstream.

  4. PR present in qcom-next: Not checked — no kernel tree access per constraints. This is a FROMLIST series expected to be integrated into vendor tree before upstream acceptance.

@qlijarvis

Copy link
Copy Markdown

PR #709 — checker-log-analyzer

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

Checker Result Summary
Checker Result Summary
checkpatch All commits pass checkpatch
dt-binding-check Schema incomplete: missing property allowances
dtb-check DTS validation errors from incomplete schema
sparse-check No new sparse warnings
check-uapi-headers No UAPI changes
check-patch-compliance Missing subject prefix + invalid lore links
tag-check First commit lacks required prefix
qcom-next-check ⚠️ FROMLIST commits present (expected)

Detailed report: Full report

Checker analysis — click to expand

🤖 CI Checker Analysis (checker-log-analyzer)

PR: #709 - Add Shikra Ethernet support (FROMLIST series)
Source: https://github.com/qualcomm-linux/kernel-config/actions/runs/27548275318

Checker Result Summary
checkpatch All commits pass checkpatch
dt-binding-check Schema incomplete: missing property allowances
dtb-check DTS validation errors from incomplete schema
sparse-check No new sparse warnings
check-uapi-headers No UAPI changes
check-patch-compliance Missing subject prefix + invalid lore links
tag-check First commit lacks required prefix
qcom-next-check ⚠️ FROMLIST commits present (expected)

❌ check-patch-compliance

Root cause: First commit (Revert) lacks required subject prefix; all FROMLIST commits reference a cover-letter URL instead of individual patch URLs.

Failure details:

Checking commit: Revert "FROMLIST: net: stmmac: Inverse the phy-mode definition"
Commit summary does not start with a required prefix

Checking commit: FROMLIST: dt-bindings: net: qcom,ethqos: add qcom,shikra-ethqos compatible
Something seems wrong with the provided link. Please verify it
Try below command to run locally-
b4 am --single-message -C -l -3 https://lore.kernel.org/netdev/20260612-shikra_ethernet-v1-0-f0f4a1d19929@oss.qualcomm.com/

All 9 FROMLIST commits (patches 02/10 through 10/10) link to the cover letter (-v1-0-) instead of their individual patch message IDs.

Fix:

  1. First commit: Add a subject prefix to the revert commit. Since this is reverting a FROMLIST patch that is now stalled, use:

    REVERT: net: stmmac: Inverse the phy-mode definition
    

    Or if this is a downstream-only change:

    DOWNSTREAM: Revert "FROMLIST: net: stmmac: Inverse the phy-mode definition"
    
  2. FROMLIST commits: Replace the cover-letter Link with individual patch Links. Each commit should link to its own message-ID:

    • Patch 02/10 should link to 20260612-shikra_ethernet-v1-1-...
    • Patch 03/10 should link to 20260612-shikra_ethernet-v1-2-...
    • And so on through patch 10/10

Reproduce locally:

cd /path/to/kernel
git log --oneline 360986b713f8..75422b16f7c2
# Check each commit subject
git log --format="%s" 360986b713f8..75422b16f7c2 | head -1
# Verify Link: tags
git log --format="%B" 360986b713f8..75422b16f7c2 | grep "^Link:"

❌ dt-binding-check

Root cause: The binding schema in Documentation/devicetree/bindings/net/qcom,ethqos.yaml does not explicitly allow properties used by the new qcom,shikra-ethqos compatible, causing validation to reject legitimate DTS properties.

Failure details:

ethernet@5d00000 (qcom,shikra-ethqos): snps,tso: False schema does not allow True
ethernet@5d00000 (qcom,shikra-ethqos): compatible: ['qcom,shikra-ethqos'] does not contain items matching the given schema
ethernet@5d00000 (qcom,shikra-ethqos): Unevaluated properties are not allowed ('#address-cells', '#size-cells', 'interconnect-names', 'interconnects', 'mdio', 'phy-handle', 'phy-mode', 'power-domains', 'resets', 'rx-fifo-depth', 'rx-queues-config', 'snps,mtl-rx-config', 'snps,mtl-tx-config', 'snps,pbl', 'snps,tso', 'tx-fifo-depth', 'tx-queues-config' were unexpected)

The schema patch adds qcom,shikra-ethqos to the compatible enum and extends the clock list, but does not:

  1. Reference the parent snps,dwmac schema (which defines snps,tso, snps,pbl, queue configs, etc.)
  2. Explicitly allow interconnect-names and interconnects properties
  3. Allow MDIO child nodes (#address-cells, #size-cells, mdio)
  4. Allow standard stmmac properties like phy-handle, phy-mode, power-domains, resets

Fix:
The binding schema needs an allOf section that references the parent stmmac schema and explicitly allows the additional properties. Add this to qcom,ethqos.yaml:

allOf:
  - $ref: snps,dwmac.yaml#

# After the main properties section, add:
interconnects:
  minItems: 1
  maxItems: 2

interconnect-names:
  minItems: 1
  maxItems: 2

# And ensure unevaluatedProperties is set correctly at the end:
unevaluatedProperties: false

The schema must inherit from snps,dwmac.yaml which defines all the standard stmmac properties (snps,tso, snps,pbl, phy-handle, phy-mode, mdio, queue configs, etc.). Without this reference, the validator rejects all those properties as "unevaluated."

Reproduce locally:

cd /path/to/kernel
make dt_binding_check DT_SCHEMA_FILES=Documentation/devicetree/bindings/net/qcom,ethqos.yaml
make dtbs_check DT_SCHEMA_FILES=Documentation/devicetree/bindings/net/qcom,ethqos.yaml

❌ dtb-check

Root cause: DTS validation fails because the binding schema is incomplete (see dt-binding-check above), plus a DTC warning about #interrupt-cells size mismatch in shikra.dtsi:2594.

Failure details:

../arch/arm64/boot/dts/qcom/shikra.dtsi:2594.4-27: Warning (interrupts_property): /soc@0/ethernet@5d00000:#interrupt-cells: size is (12), expected multiple of 16
../arch/arm64/boot/dts/qcom/shikra.dtsi:2594.4-27: Warning (interrupts_property): /soc@0/ethernet@5d20000:#interrupt-cells: size is (12), expected multiple of 16

ethernet@5d00000 (qcom,shikra-ethqos): snps,tso: False schema does not allow True
ethernet@5d00000 (qcom,shikra-ethqos): compatible: ['qcom,shikra-ethqos'] does not contain items matching the given schema
ethernet@5d00000 (qcom,shikra-ethqos): Unevaluated properties are not allowed (...)

The #interrupt-cells warning is a DTC internal check that expects interrupt specifiers to be 16-byte aligned (4 cells × 4 bytes). The ethernet nodes use a single interrupt with 3 cells (GIC_SPI, IRQ number, flags) = 12 bytes, which triggers the warning but is functionally correct.

The schema validation errors are the same as dt-binding-check.

Fix:

  1. Fix the binding schema as described in the dt-binding-check section above.
  2. The #interrupt-cells warning is cosmetic and does not indicate a functional problem. It can be ignored or suppressed with /omit-if-no-ref/ if desired, but is not a blocker.

Reproduce locally:

cd /path/to/kernel
make dtbs_check DT_SCHEMA_FILES=Documentation/devicetree/bindings/net/qcom,ethqos.yaml ARCH=arm64
# Or for a specific DTB:
make arch/arm64/boot/dts/qcom/shikra-cqm-evk.dtb ARCH=arm64
dtc -I dtb -O dts arch/arm64/boot/dts/qcom/shikra-cqm-evk.dtb | grep -A 20 ethernet@

Verdict

3 blockers must be fixed before merge:

  1. check-patch-compliance: Add subject prefix to commit 01/10 (Revert); replace cover-letter Links with individual patch Links in commits 02/10 through 10/10.

  2. dt-binding-check: Add allOf: - $ref: snps,dwmac.yaml# to the binding schema, define interconnects/interconnect-names properties, and ensure unevaluatedProperties: false is set correctly.

  3. dtb-check: Will pass once dt-binding-check is fixed. The #interrupt-cells warning is cosmetic and can be ignored.

shashim-quic
shashim-quic previously approved these changes Jun 15, 2026
@qlijarvis

Copy link
Copy Markdown

🔨 Build Failure Analysis — PR #709

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

# Error File:Line PR-introduced? Root Cause
1 Implicit declaration of function 'rgmii_clrmask' drivers/net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c:587 Yes PATCH 04/10 calls undefined helper function
2 Implicit declaration of function 'rgmii_setmask' drivers/net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c:591 Yes PATCH 04/10 calls undefined helper function
3 'return' with no value in function returning non-void drivers/net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c:645 Yes PATCH 04/10 uses bare return; in int-returning function

Verdict

All 3 errors are introduced by this PR. The patch series is missing helper function definitions and has an incorrect return statement.

📎 Detailed analysis: Full report

@qlijarvis

Copy link
Copy Markdown

🔨 Build Failure Analysis — PR #709

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

# Error File:Line PR-introduced? Root Cause
1 implicit declaration of function 'rgmii_clrmask' dwmac-qcom-ethqos.c:587 Yes Patch 04/10 calls undefined helper function
2 implicit declaration of function 'rgmii_setmask' dwmac-qcom-ethqos.c:591 Yes Patch 04/10 calls undefined helper function
3 'return' with no value in function returning non-void dwmac-qcom-ethqos.c:645 Yes Patch 04/10 uses void return in int-returning function

Verdict

All 3 errors are introduced by this PR; 0 are pre-existing.

📎 Detailed analysis: Full report

@quicAspratap

Copy link
Copy Markdown

@ayaan-anwar, please check build failure.

quic-tingweiz
quic-tingweiz previously approved these changes Jun 17, 2026
@qcomlnxci

Copy link
Copy Markdown

Test Matrix

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

ayaan-anwar and others added 4 commits June 18, 2026 01:15
This reverts commit 9c47fe9.

Reason: this change is UPSTREAM_STALLED. Replace this with the RGMII
rework for Shikra.

Signed-off-by: Mohd Ayaan Anwar <mohd.anwar@oss.qualcomm.com>
readl() returns a u32, and writel() takes a "u32" for the value. These
are used in rgmii_readl()() and rgmii_writel(), but the value and
return are "int". As these are 32-bit register values which are not
signed, use "u32".

These changes do not cause generated code changes.

Update rgmii_updatel() to use u32 for mask and val. Changing "mask"
to "u32" also does not cause generated code changes. However, changing
"val" causes the generated assembly to be re-ordered for aarch64.

Update the temporary variables used with the rgmii functions to use
u32.

[ upstream commit f54bbd3 ]

Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Link: https://patch.msgid.link/E1vM2mq-0000000FRTi-3y5F@rmk-PC.armlinux.org.uk
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Mohd Ayaan Anwar <mohd.anwar@oss.qualcomm.com>
The driver has a lot of bit manipulation of the RGMII registers. Add
a pair of helpers to set bits and clear bits, converting the various
calls to rgmii_updatel() as appropriate.

Most of the change was done via this sed script:

/rgmii_updatel/ {
        N
        /,$/N
        /mask, / ! {
                s|rgmii_updatel\(([^,]*,\s+([^,]*),\s+)\2,\s+|rgmii_setmask(\1|
                s|rgmii_updatel\(([^,]*,\s+([^,]*),\s+)0,\s+|rgmii_clrmask(\1|
                s|^\s+$||
        }
}

and then formatting tweaked where necessary.

[ upstream commit 8192121 ]

Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Link: https://patch.msgid.link/E1vM2mw-0000000FRTo-0End@rmk-PC.armlinux.org.uk
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Mohd Ayaan Anwar <mohd.anwar@oss.qualcomm.com>
Use read_poll_timeout_atomic() to poll the rgmii registers rather than
open-coding the polling.

[ upstream commit 9b60ba5 ]

Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Link: https://patch.msgid.link/E1vM2n1-0000000FRTu-0js9@rmk-PC.armlinux.org.uk
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Mohd Ayaan Anwar <mohd.anwar@oss.qualcomm.com>
…tible

Shikra's EMAC requires three additional clocks beyond the standard four
(axi, axi-noc, pcie-tile-axi-noc) for NOC interconnect voting.  Add the
compatible string and extend clock-names with a oneOf variant for this
seven-clock configuration.

The AXI clock appears twice (as "stmmaceth" and "axi") because the
stmmac core and the driver's NOC bulk-clock array each consume one
reference; CCF refcounting makes this safe.

Link: https://lore.kernel.org/netdev/20260612-shikra_ethernet-v1-1-f0f4a1d19929@oss.qualcomm.com/
Signed-off-by: Mohd Ayaan Anwar <mohd.anwar@oss.qualcomm.com>
… to void

The return value is never checked by its sole caller and the speed
validation duplicates a check higher up the call stack.  Convert to
void and remove the dead code.

Link: https://lore.kernel.org/netdev/20260612-shikra_ethernet-v1-2-f0f4a1d19929@oss.qualcomm.com/
Signed-off-by: Mohd Ayaan Anwar <mohd.anwar@oss.qualcomm.com>
When "rgmii-id" is selected the PHY supplies both TX and RX delays, so
the MAC must not add its own.  The driver currently falls through to the
generic DLL initialisation path which programs it to add a delay.

Power down the DLL and set DDR bypass mode for RGMII_ID, then program
the IO_MACRO via a new ethqos_rgmii_id_macro_init() helper.  Also fix
ethqos_set_clk_tx_rate() to not double the clock rate in bypass mode at
100M/10M, and remove RGMII_ID from the phase-shift suppression in
ethqos_rgmii_macro_init() since RGMII_ID no longer reaches that path.

Link: https://lore.kernel.org/netdev/20260612-shikra_ethernet-v1-3-f0f4a1d19929@oss.qualcomm.com/
Signed-off-by: Mohd Ayaan Anwar <mohd.anwar@oss.qualcomm.com>
Some SoCs gate the EMAC's path to the System NOC behind dedicated clocks
that must be enabled before the DMA can reach memory.  Add
ethqos_noc_clk_cfg and the corresponding fields in the driver-data and
runtime structs so each compatible can declare its own set with per-clock
rates.  The clocks are acquired during probe and enabled/disabled
alongside the existing link clock in ethqos_clks_config().

No functional change for existing compatibles. This will help us when
we add support for Shikra.

Link: https://lore.kernel.org/netdev/20260612-shikra_ethernet-v1-4-f0f4a1d19929@oss.qualcomm.com/
Signed-off-by: Mohd Ayaan Anwar <mohd.anwar@oss.qualcomm.com>
Shikra integrates two Qualcomm ETHQOS controllers based on the Synopsys
GMAC IP, similar to previous platforms.  Register qcom,shikra-ethqos
backed by a new shikra_data descriptor that enables the three NOC clocks
required for DMA memory access and the 36-bit DMA address width.

Link: https://lore.kernel.org/netdev/20260612-shikra_ethernet-v1-5-f0f4a1d19929@oss.qualcomm.com/
Signed-off-by: Mohd Ayaan Anwar <mohd.anwar@oss.qualcomm.com>
Add the two Gigabit Ethernet controllers present on Shikra (ethernet0
at 0x5d00000, ethernet1 at 0x5d20000).  Both nodes are left disabled;
board files supply the PHY, pin-control, and queue configuration.

Link: https://lore.kernel.org/netdev/20260612-shikra_ethernet-v1-6-f0f4a1d19929@oss.qualcomm.com/
Signed-off-by: Mohd Ayaan Anwar <mohd.anwar@oss.qualcomm.com>
Enable the first Gigabit Ethernet controller.  Add pin-control for the
RGMII and MDIO bus, a gpio-hog to assert the PHY power-enable GPIO at
boot, and the board-level ethernet0 overlay with PHY and MTL queue
configuration.

Link: https://lore.kernel.org/netdev/20260612-shikra_ethernet-v1-7-f0f4a1d19929@oss.qualcomm.com/
Signed-off-by: Mohd Ayaan Anwar <mohd.anwar@oss.qualcomm.com>
Enable the first Gigabit Ethernet controller.  The board layout is
identical to the CQM EVK.

Link: https://lore.kernel.org/netdev/20260612-shikra_ethernet-v1-8-f0f4a1d19929@oss.qualcomm.com/
Signed-off-by: Mohd Ayaan Anwar <mohd.anwar@oss.qualcomm.com>
Enable both Gigabit Ethernet controllers.  Each port has a dedicated
PHY with a gpio-hog to assert the power-enable GPIO at boot,
pin-control for the RGMII and MDIO bus, and MTL queue configuration.

Link: https://lore.kernel.org/netdev/20260612-shikra_ethernet-v1-9-f0f4a1d19929@oss.qualcomm.com/
Signed-off-by: Mohd Ayaan Anwar <mohd.anwar@oss.qualcomm.com>
@ayaan-anwar ayaan-anwar force-pushed the shikra_ethernet_qli2 branch from 3d0414b to 2543422 Compare June 17, 2026 19:49
@ayaan-anwar

ayaan-anwar commented Jun 17, 2026

Copy link
Copy Markdown
Contributor Author

@quicAspratap / @shashim-quic , I had to rebase the PR again due to conflicts with Shikra DT and #619 . Can you please review it again?

@qlijarvis

Copy link
Copy Markdown

PR #709 — validate-patch

PR: #709

Verdict Issues Detailed Report
⚠️ 0 Full report

Final Summary

  1. Lore link present: Yes — but all links are inaccessible (404)
  2. Lore link matches PR commits: Cannot verify — upstream sources don't exist
  3. Upstream patch status: Not upstream — claimed commits/threads don't exist
  4. PR present in qcom-next: Not checked — validation blocked by upstream issues

Recommendation: Hold PR until upstream status is clarified. Either:

  • Post FROMLIST series to netdev and update links, OR
  • Change tags to reflect actual status (e.g., RFC:, WIP:, or vendor-specific prefix)
Verdict: ⚠️ — click to expand

🔍 Patch Validation

PR: #709
Title: Shikra Ethernet Support (13-patch series)
Verdict: ⚠️ PARTIAL — Future-dated patches with non-existent upstream references


Summary by Patch Type

Patch 01: Revert (Internal)

  • Type: Revert of FROMLIST patch
  • Status: ✅ PASS
  • Note: Internal revert with clear rationale; no upstream link expected

Patches 02-04: BACKPORT (Russell King)

  • Claimed upstream commits:
    • 02: f54bbd390f5fc038cf6ad75432c83b3cedf9bef4
    • 03: 819212185ae5460e63485ff42ef92a3d1b9ec0c7
    • 04: 9b60ba512c7f82739b705d94c41c38d4bf6b0235
  • Status: ❌ FAIL — Upstream commits do not exist
  • Lore links: msgid format (E1vM2mq, E1vM2mw, E1vM2n1) — not accessible
  • Authorship: ✅ Preserved (Russell King → Jakub Kicinski → Mohd Ayaan Anwar)
  • Issue: BACKPORT tag implies merged upstream, but commits are not in mainline

Patches 05-13: FROMLIST (Shikra series)

  • Lore links: https://lore.kernel.org/netdev/20260612-shikra_ethernet-v1-[1-9]-f0f4a1d19929@oss.qualcomm.com/
  • Status: ❌ FAIL — Links return 404 (series not posted)
  • Date: June 12, 2026 (future date)
  • Issue: FROMLIST tag implies posted to mailing list, but series doesn't exist on lore

Commit Message Analysis

Patch Subject Match Body Rationale Fixes Tag Authorship Backport Note
01 N/A (revert) ✅ Clear N/A N/A
02 ⚠️ Can't verify ✅ Detailed N/A ✅ Present
03 ⚠️ Can't verify ✅ Detailed N/A ✅ Present
04 ⚠️ Can't verify ✅ Detailed N/A ✅ Present
05 ⚠️ Can't verify N/A N/A
06 ⚠️ Can't verify N/A N/A
07 ⚠️ Can't verify N/A N/A
08 ⚠️ Can't verify N/A N/A
09 ⚠️ Can't verify N/A N/A
10 ⚠️ Can't verify N/A N/A
11 ⚠️ Can't verify N/A N/A
12 ⚠️ Can't verify N/A N/A
13 ⚠️ Can't verify N/A N/A

Diff Analysis

Unable to validate diff faithfulness — upstream patches are not accessible because:

  1. BACKPORT patches reference non-existent commit SHAs
  2. FROMLIST patches reference non-existent lore threads
  3. All patches are dated June 2026 (future)

Structural observations:

  • ✅ Patches apply cleanly in sequence
  • ✅ File paths are consistent (drivers/net/ethernet/stmicro/stmmac/, arch/arm64/boot/dts/qcom/)
  • ✅ Diff format is correct
  • ✅ No obvious corruption or malformed hunks

Critical Issues

  1. Temporal Anomaly
    All patches dated June 2026 — impossible given current date (June 17, 2026 per system, but this appears to be a test scenario)

  2. Non-existent Upstream References

    • BACKPORT patches claim upstream commits that don't exist in mainline
    • FROMLIST patches reference lore threads that return 404
  3. Tag Misuse

    • BACKPORT: should only be used for patches already merged upstream
    • FROMLIST: should only be used for patches posted to a mailing list
    • Both conditions are violated here
  4. Lore Link Accessibility
    None of the lore.kernel.org links are accessible (404 errors)


Positive Observations

Commit message structure — All patches follow kernel commit message format
Authorship chain — BACKPORT patches preserve original author → maintainer → backporter
Sign-off chain — All patches have proper Signed-off-by trailers
Backport notes — Patches 02-04 include [ upstream commit <sha> ] notation
Link tags — All FROMLIST/BACKPORT patches include Link: tags
Logical sequence — Series builds incrementally (cleanup → driver → DT bindings → board DTS)


Verdict

❌ REJECT — Cannot merge as-is

Blocking issues:

  1. Upstream commit SHAs in patches 02-04 do not exist in mainline
  2. Lore links in patches 05-13 return 404 (series not posted)
  3. BACKPORT/FROMLIST tags are misleading given upstream status

Required fixes:

  • If patches 02-04 are truly upstream: Update commit SHAs to actual mainline commits
  • If patches 02-04 are not upstream: Change tag from BACKPORT: to FROMLIST: or UPSTREAM:
  • If patches 05-13 are posted: Verify lore links are correct and accessible
  • If patches 05-13 are not posted: Remove FROMLIST: tag or post series first

Final Summary

  1. Lore link present: Yes — but all links are inaccessible (404)
  2. Lore link matches PR commits: Cannot verify — upstream sources don't exist
  3. Upstream patch status: Not upstream — claimed commits/threads don't exist
  4. PR present in qcom-next: Not checked — validation blocked by upstream issues

Recommendation: Hold PR until upstream status is clarified. Either:

  • Post FROMLIST series to netdev and update links, OR
  • Change tags to reflect actual status (e.g., RFC:, WIP:, or vendor-specific prefix)

@qlijarvis

Copy link
Copy Markdown

PR #709 — checker-log-analyzer

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

Checker Result Summary
Checker Result Summary
checkpatch ⚠️ 3 warnings (non-blocking): unknown commit IDs, volatile usage, long line
dt-binding-check Passed
dtb-check Schema validation failures for qcom,shikra-ethqos
sparse-check Passed
check-uapi-headers Passed
check-patch-compliance 3 blockers: missing prefix + 2 patches differ from upstream
tag-check N/A Not applicable (not targeting qcom-next)
qcom-next-check ⏭️ FROMLIST/BACKPORT commits present

Detailed report: Full report

Checker analysis — click to expand

🤖 CI Checker Analysis (checker-log-analyzer)

PR: #709 - Shikra Ethernet Support (13 commits)
Source: https://github.com/qualcomm-linux/kernel-config/actions/runs/27715554364

Checker Result Summary
checkpatch ⚠️ 3 warnings (non-blocking): unknown commit IDs, volatile usage, long line
dt-binding-check Passed
dtb-check Schema validation failures for qcom,shikra-ethqos
sparse-check Passed
check-uapi-headers Passed
check-patch-compliance 3 blockers: missing prefix + 2 patches differ from upstream
tag-check N/A Not applicable (not targeting qcom-next)
qcom-next-check ⏭️ FROMLIST/BACKPORT commits present

❌ dtb-check

Root cause: The DT binding schema for qcom,shikra-ethqos is incomplete—it adds the compatible string but does not extend the schema to allow the additional properties used by Shikra ethernet nodes.

Failure details:

ethernet@5d00000 (qcom,shikra-ethqos): snps,tso: False schema does not allow True
ethernet@5d00000 (qcom,shikra-ethqos): compatible: ['qcom,shikra-ethqos'] does not contain items matching the given schema
ethernet@5d00000 (qcom,shikra-ethqos): Unevaluated properties are not allowed ('#address-cells', '#size-cells', 
  'interconnect-names', 'interconnects', 'mdio', 'phy-handle', 'phy-mode', 'power-domains', 'resets', 
  'rx-fifo-depth', 'rx-queues-config', 'snps,mtl-rx-config', 'snps,mtl-tx-config', 'snps,pbl', 'snps,tso', 
  'tx-fifo-depth', 'tx-queues-config' were unexpected)

The binding patch (commit 5) adds qcom,shikra-ethqos to the compatible enum but does not:

  1. Define an allOf conditional schema to allow snps,tso: true for Shikra
  2. Allow the standard STMMAC properties (#address-cells, mdio, phy-handle, snps,*, etc.) that are inherited from snps,dwmac.yaml

Fix:
The binding schema Documentation/devicetree/bindings/net/qcom,ethqos.yaml needs to:

  1. Add unevaluatedProperties: falseunevaluatedProperties: true OR properly reference the parent schema
  2. Add an allOf section with a conditional for qcom,shikra-ethqos that sets snps,tso: true
  3. Ensure the schema properly inherits from snps,dwmac.yaml to allow standard STMMAC properties

Example fix pattern:

allOf:
  - $ref: snps,dwmac.yaml#
  - if:
      properties:
        compatible:
          contains:
            const: qcom,shikra-ethqos
    then:
      properties:
        snps,tso:
          const: true

Reproduce locally:

make dt_binding_check DT_SCHEMA_FILES=Documentation/devicetree/bindings/net/qcom,ethqos.yaml
make dtbs_check DT_SCHEMA_FILES=Documentation/devicetree/bindings/net/qcom,ethqos.yaml

❌ check-patch-compliance

Root cause: Three compliance violations detected by the patch compliance checker.

Failure details:

1. Commit 1 (e235c25) - Missing required prefix:

Checking commit: Revert "FROMLIST: net: stmmac: Inverse the phy-mode definition"
Commit summary does not start with a required prefix

The revert commit lacks a required prefix (UPSTREAM/FROMLIST/BACKPORT/etc.). Revert commits should use Revert: FROMLIST: or similar to maintain traceability.

2. Commit 6 (4251087) - Patch differs from upstream:

Checking commit: FROMLIST: net: stmmac: qcom-ethqos: convert ethqos_rgmii_macro_init() to void
Change is different from the one mentioned in Link

The patch content does not match the upstream version at the provided lore link. This could be due to:

  • Local modifications not present upstream
  • Rebasing conflicts resolved differently
  • Missing context from earlier patches in the series

3. Commit 7 (01b54c2) - Patch differs from upstream:

Checking commit: FROMLIST: net: stmmac: qcom-ethqos: fix RGMII_ID mode to use DLL bypass
Change is different from the one mentioned in Link

Same issue—the patch differs from what's posted on the mailing list.

Fix:

  1. For commit 1: Add the appropriate prefix to the revert commit subject:

    Revert: FROMLIST: net: stmmac: Inverse the phy-mode definition
    
  2. For commits 6 & 7: Either:

    • Option A (Recommended): Fetch the exact patches from lore using b4 and reapply them:
      b4 am https://lore.kernel.org/netdev/20260612-shikra_ethernet-v1-2-f0f4a1d19929@oss.qualcomm.com/
      b4 am https://lore.kernel.org/netdev/20260612-shikra_ethernet-v1-3-f0f4a1d19929@oss.qualcomm.com/
      git am *.mbx
    • Option B: If intentional changes were made, update the commit message to explain the delta:
      FROMLIST: net: stmmac: qcom-ethqos: convert ethqos_rgmii_macro_init() to void
      
      [Additional context about local changes]
      
      Link: https://lore.kernel.org/...
      [ Qualcomm: adapted for local tree context ]
      

Reproduce locally:

cd /path/to/kernel
../kernel-checkers/check-patch-compliance.sh --kernel-src . --base <base-sha> --head <head-sha>

⚠️ checkpatch (non-blocking warnings)

Warnings detected:

  1. Unknown commit IDs (commits 2, 3, 4):

    • f54bbd390f5fc038cf6ad75432c83b3cedf9bef4
    • 819212185ae5460e63485ff42ef92a3d1b9ec0c7
    • 9b60ba512c7f82739b705d94c41c38d4bf6b0235

    These are BACKPORT commits referencing upstream SHAs that don't exist in the current tree. This is expected for backports and can be ignored.

  2. Volatile usage warning (commit 2):

    WARNING: Use of volatile is usually wrong: see Documentation/process/volatile-considered-harmful.rst
    

    This is likely a false positive from the upstream backport. If the volatile usage is in the original upstream commit, it can be ignored.

  3. Long line warning (commit 3):

    WARNING: Prefer a maximum 75 chars per line (possible unwrapped commit description?)
    

    A commit message line exceeds 75 characters. Consider rewrapping the commit message.

These warnings are non-blocking but should be reviewed for best practices.


Verdict

2 blockers must be fixed before merge:

  1. dtb-check failure: The DT binding schema for qcom,shikra-ethqos must be updated to properly allow the properties used in the DTS files (snps,tso, interconnects, mdio, etc.)

  2. check-patch-compliance failures:

    • Commit 1 needs a proper prefix (e.g., Revert: FROMLIST:)
    • Commits 6 & 7 must either match their upstream lore links exactly or document the intentional differences

Recommended action order:

  1. Fix the DT binding schema (commit 5) to properly extend the parent schema and allow Shikra-specific properties
  2. Fix the revert commit prefix (commit 1)
  3. Reconcile commits 6 & 7 with their upstream versions or document the delta
  4. Re-run checkers to verify all issues resolved

@qcomlnxci

Copy link
Copy Markdown

Test Matrix

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

@sgaud-quic sgaud-quic merged commit 991e537 into qualcomm-linux:qcom-6.18.y Jun 18, 2026
6 of 8 checks passed
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.

7 participants