Skip to content
View in the app

A better way to browse. Learn more.

Armbian Community Forums

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

HINLINK H68K: eth0 does not work (a.k.a Link Star H68K)

Featured Replies

Board: HINLINK H68K (community-maintained)

Image: Armbian_community_26.11.0-trunk.108_Hinlink-h68k_trixie_current_6.18.57_minimal (kernel 6.18.57-current-rockchip64)

What happened?

1. The port labelled eth0 never works. At boot its link LED blinks once and stays dark. mii-tool end1 reports "No MII transceiver present!" and bringing it up logs "Failed to reset the dma". I observed the problem on two separate H68K units.

Once that was resolved, I further noticed that...

2. With a good cable, eth0 and eth1 link at 1000 Mbit/s but can't receive. Received frames land in mmc_rx_crc_error (on eth1, all of them), so DHCP never completes. With a cable that negotiates 100 Mbit/s, both ports work.

Expected: both 1G ports work at 1000 Mbit/s, as the 2.5G ports (eth2/eth3) do.

Root Causes:

Both are in patch/kernel/archive/rockchip64-*/dt/rk3568-hinlink-h68k.dts:

1. &i2s1_8ch (RK809 audio) has no pinctrl-0, so it takes the full 8-channel i2s1m0 pin set. That set includes GPIO1_B0, which is gmac1's snps,reset-gpio. Once the i2s driver probes, the eth0 PHY is held in reset:

pin 40 (gpio1-8): fe410000.i2s gpio1:40 function i2s1 group i2s1m0-sdo1

2. Both gmacs are rgmii-id (the PHY adds the delays) but also set tx_delay = <0x3c>; rx_delay = <0x2f>;. The rockchip64-6.18 tree carries the WIP patch "dwmac-rk: Allow use of rx/tx delayline for rgmii-id modes", which applies those MAC delays as well, so the delay is applied twice:

init for rgmii-id with delay (tx: 0x3c, rx: 0x2f)

How to reproduce?

Boot the image above on an H68K. Plug a cable into the port labelled eth0: no link. Plug a known-good cable into eth1 with a gigabit partner: it links at 1000 Mbit/s but gets no DHCP lease, and ethtool -S end0 | grep rx_crc climbs.

Fix:

PR: https://github.com/armbian/build/pull/11251. It restricts i2s1 to the 4 pins the codec uses (same as mainline's rk3568-rock-3a.dts) and drops tx_delay/rx_delay. I tested it on 6.18.57 with an equivalent overlay: both 1G ports pass traffic at 1000 Mbit/s with no CRC errors, and analog audio still plays.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.