Skip to content

recipes-connectivity: add the qps615 ethernet driver#1698

Open
ayaan-anwar wants to merge 1 commit intoqualcomm-linux:masterfrom
ayaan-anwar:qps615
Open

recipes-connectivity: add the qps615 ethernet driver#1698
ayaan-anwar wants to merge 1 commit intoqualcomm-linux:masterfrom
ayaan-anwar:qps615

Conversation

@ayaan-anwar
Copy link

Add support for the QPS615 Ethernet out of tree DLKM by introducing a new recipes-connectivity/qps615 recipe along with the required driver and firmware patches.
The recipe pulls the Toshiba QPS615 driver and firmware sources and applies Qualcomm‑specific extensions and compatibility fixes to enable QPS615 on Qualcomm platforms.

Overview of Qualcomm-specific patches:

  1. Patch 1: QCOM platform driver support

    • Introduces a Qualcomm platform overlay for the TC956x driver
    • Handles SoC‑specific hardware configuration:
    • PHY power sequencing (regulator / GPIO‑based)
    • PHY reset handling
    • Pin control setup
  2. Patch 2: Persistent MAC address support

    • Adds support for retrieving the MAC address from the board's EEPROM (if available)
    • Falls back to a randomly generated MAC address when no persistent source is found
  3. Patch 3: Linux Kernel 6.18 compatibility

    • Updates deprecated APIs and adapts to kernel interface changes
    • Migrates to newer ethtool_keee, kernel_ethtool_ts_info, and phylink APIs
    • Fixes GPIO range handling, timer APIs, and EEE capability handling

Exception details: Until the QPS615 driver is upstreamed (third party ETA: end of 2026), an exception has been approved to include the driver as an out of tree DLKM (QLIJIRA-99).

Add the recipe and patches required to compile the QPS615 ethernet
driver.

Signed-off-by: Mohd Ayaan Anwar <mohd.anwar@oss.qualcomm.com>
@koenkooi
Copy link
Contributor

koenkooi commented Mar 6, 2026

Out-of-tree kernel modules go into recipes-kernel, recipes-connectivity is for userspace.

@@ -0,0 +1,37 @@
inherit module
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

inherit below DESCRIPTION/SUMMARY/LICENSE

@@ -0,0 +1,37 @@
inherit module

DESCRIPTION = "QPS615 Driver and Firmware"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

MIssing SUMMARY

git://github.com/TC956X/TC9564_Firmware.git;branch=industrial_limited_tested;protocol=https;name=firmware;destsuffix=firmware \
"

# Separate the driver source and firmware when unpacking
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

SRCREV needs to go above where it's used, in this case SRC_URI

"

# Separate the driver source and firmware when unpacking
SRCREV_source = "9faf7ea02e804f3ab86b21ea0e5d41ac40d37f91"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No version set in the filename, nor using PV.

S = "${UNPACKDIR}/source"
B = "${S}/drivers/net/ethernet/toshiba/tc956x"

FILES:${PN} += "${base_libdir}/firmware/TC956X_Firmware_PCIeBridge.bin"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

FILES* go below do_install()

inherit module

DESCRIPTION = "QPS615 Driver and Firmware"
LICENSE = "GPL-2.0-only"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since LICENSE gets transferred to the runtime packages, what license are the firmware files?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@ndechesne
Copy link
Contributor

you added some important information in the Github PR, which is good, I would recommend adding that information directly in the commit message instead.

Overlay the Qualcomm Platform driver for handling SoC specific hardware
configuration.

Upstream-Status: Pending
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why is it Pending? Please classify all the patches correctly.

FILES:${PN} += "${base_libdir}/firmware/TC956X_Firmware_PCIeBridge.bin"

# This package is designed to run exclusively on ARMv8 (aarch64) machines.
# Therefore, builds for other architectures are not necessary and are explicitly excluded.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why? Does it have any issues?

# Install the firmware to /lib/firmware
do_install:append() {
# Install firmware binary from the second repo
install -d ${D}${base_libdir}/firmware/
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

${nonarch_base_libdir}/firmware/

do_install:append() {
# Install firmware binary from the second repo
install -d ${D}${base_libdir}/firmware/
install -m 0644 ${UNPACKDIR}/firmware/Bin/TC956X_Firmware_PCIeBridge.bin ${D}${base_libdir}/firmware/
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is the licence for the firmware? If it's GPL v2 (as it's stated), please provide full sources for the firmware.

@lumag
Copy link
Contributor

lumag commented Mar 6, 2026

Overview of Qualcomm-specific patches:

Patch 1: QCOM platform driver support

Please don't describe patch contents. Describe why is something required.

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.

5 participants