You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I tried to build and test the new image for IQ-9075-EVK based on an open source boot sequence and FIT image: meta-qcom/ci/iq-9075-evk-open-fw-spl.yml
but I can't get the Ethernet port to work.
Bellow the step I use to reproduce the issue:
# I am building in a ubuntu 24.04 docker.
# Get source
mkdir qualcomm && cd qualcomm
git clone https://github.com/qualcomm-linux/meta-qcom.git
cd meta-qcom
git rev-parse HEAD
# cf53a39cc03ba0214dfdddd4ac3b239956da847c
cd ..
# Build yocto image
TARGET="meta-qcom/ci/iq-9075-evk-open-fw-spl.yml:meta-qcom/ci/kernel-fit-image.yml:meta-qcom/ci/base.lock.yml"
kas shell ${TARGET} --update
bitbake -c build core-image-base
By default ethernet is not detected, because kernel modules are missing.
I tried to add:
But despite everything, the cable is not being detected.
Issue: The ethernet interface always remains in "NO-CARRIER" state even if ("working" ethernet) cable is plugged.
root@iq-9075-evk-open-fw-spl:~# ip addr add 192.168.0.2/24 dev end0
root@iq-9075-evk-open-fw-spl:~# ip a show end0
2: end0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq qlen 1000
link/ether 38:43:3a:46:44:3a brd ff:ff:ff:ff:ff:ff
inet 192.168.0.2/24 scope global end0
valid_lft forever preferred_lft forever
Thanks, the missing modules is indeed an issue that shows up with nodistro (or any other distro that is not including the kernel-modules meta package), and it is fixed by #3208.
I was also able to confirm that there is an issue with the link mode in 7.2 (works fine on 6.18 but then you won't be able to boot with the SPL flow until qualcomm-linux/kernel#1129 gets merged), and it seems that the problem is that it only advertises 2500baseT/Full, which would only work if you have a compatible network hardware.
After manually forcing 1000 it was able to bring the link and work as expected, try ethtool -s end0 speed 1000 duplex full autoneg off.
Meanwhile I'm checking what might be missing in 7.2.
netdev marked it changes-requested (patchwork 14230857), no v2 was ever posted. Russell King's objection: the QCA8081 doesn't rate-match at all — it switches its SerDes between SGMII (≤1G) and 2500BASE-X (2.5G), so the patch only makes ethtool claim the lower speeds. The reason it nonetheless works on 6.18 (and would on 7.x) is that dwmac-qcom-ethqos already reprograms the SerDes per negotiated speed (ethqos_fix_mac_speed_sgmii + ethqos_pcs_set_inband), so in practice the lower speeds link fine — Ayaan confirmed 1G and 2.5G both worked in the thread.
The upstream-acceptable fix Russell pointed at is on the MAC side: have dwmac-qcom-ethqos register plat->get_interfaces advertising both SGMII and 2500BASE-X, so phylink validates both and lets the PHY negotiate all speeds. That hook has existed in stmmac since ca732e990fc8 (May 2025, in 7.2 and 7.3) and three other glue drivers use it — ethqos just never set it. Ayaan reported a "dirty version" of exactly that worked on both speeds. Nothing has been posted since.
Activity
lumag commentedon Sep 21, 2026
Shiraz Hashim (@shashim-quic) FYI
ricardosalveti commentedon Sep 22, 2026
Thanks, the missing modules is indeed an issue that shows up with nodistro (or any other distro that is not including the kernel-modules meta package), and it is fixed by #3208.
I was also able to confirm that there is an issue with the link mode in 7.2 (works fine on 6.18 but then you won't be able to boot with the SPL flow until qualcomm-linux/kernel#1129 gets merged), and it seems that the problem is that it only advertises 2500baseT/Full, which would only work if you have a compatible network hardware.
After manually forcing 1000 it was able to bring the link and work as expected, try
ethtool -s end0 speed 1000 duplex full autoneg off.Meanwhile I'm checking what might be missing in 7.2.
ricardosalveti commentedon Sep 22, 2026
The missing patch: https://lore.kernel.org/netdev/20250914-qca808x_rate_match-v1-1-0f9e6a331c3b@oss.qualcomm.com/ (only available in 6.18).
And why it isn't upstream yet:
netdev marked it changes-requested (patchwork 14230857), no v2 was ever posted. Russell King's objection: the QCA8081 doesn't rate-match at all — it switches its SerDes between SGMII (≤1G) and 2500BASE-X (2.5G), so the patch only makes ethtool claim the lower speeds. The reason it nonetheless works on 6.18 (and would on 7.x) is that dwmac-qcom-ethqos already reprograms the SerDes per negotiated speed (ethqos_fix_mac_speed_sgmii + ethqos_pcs_set_inband), so in practice the lower speeds link fine — Ayaan confirmed 1G and 2.5G both worked in the thread.
The upstream-acceptable fix Russell pointed at is on the MAC side: have dwmac-qcom-ethqos register plat->get_interfaces advertising both SGMII and 2500BASE-X, so phylink validates both and lets the PHY negotiate all speeds. That hook has existed in stmmac since ca732e990fc8 (May 2025, in 7.2 and 7.3) and three other glue drivers use it — ethqos just never set it. Ayaan reported a "dirty version" of exactly that worked on both speeds. Nothing has been posted since.
packagegroup-machine-essential: add the at24 and qca808x modules
ricardosalveti commentedon Sep 22, 2026
The kernel issue: qualcomm-linux/kernel#1156
packagegroup-machine-essential: add the at24 and qca808x modules
packagegroup-machine-essential: add the at24 and qca808x modules
ubicore commentedon Sep 23, 2026
I used a wrong account to create this issue, now I am working only from this one.
Sorry for the confusion
packagegroup-machine-essential: add the at24 and qca808x modules
packagegroup-machine-essential: add the at24 and qca808x modules (qua…
packagegroup-machine-essential: add the at24 and qca808x modules