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.

Banana Pi BPI-M4-Zero (sun50i-h618) EMAC1 internal PHY not detected (“No PHY found!”)

Featured Replies

armbianmonitor logs: https://paste.armbian.com/rolisaboru

 

I’m running Armbian 25.2 on a Banana Pi BPI-M4-Zero (Allwinner sun50i-h618). EMAC1 (ethernet@5030000) with its internal PHY never comes up:

sunxi-gmac 5030000.ethernet end0: renamed from eth0
… No PHY found! … phy init again… No PHY found! … phy init failed

 

So far I have tried:
 

1. Directly patching full.dts

Enabled /soc/ethernet@5030000 (status = “okay”)

Added phy-mode = "rmii", pinctrl-0 = <&rmii_pins>, phy-handle, phy-supply etc.

Defined a simple ethernet-phy@0 under MDIO.

Recompiled to sun50i-h618-bananapi-m4-zero.dtb and rebooted.

 

2. User overlay (.dts → .dtbo)

Created fragments to:

Turn on /soc/ethernet@5030000/mdio

Inject an ethernet-phy@0 node

Enable EMAC1, assign RMII pins, MDIO and PHY handle

Compiled with dtc -@ and loaded via user_overlays=bpi-m4z-eth in armbianEnv.txt.


3. Following Armbian build PR #6617
Tried the patch for H618’s internal AC300 PHY from https://github.com/armbian/build/pull/6617

No change: PHY still not detected, no power-up.


4. Troubleshooting notes

Overlay apply errors: FDT_ERR_NOTFOUND

dtc compile errors on duplicate or missing phandle references

Verified pinctrl entries (rmii-pins) and alias names match base DTS

I’ve collected a full hardware/software report via armbianmonitor—see the logs here: https://paste.armbian.com/rolisaboru
 

What I’m looking for

A known-good snippet of device-tree (base DTS or overlay) that brings up the internal EMAC1 PHY on sun50i-h618

Advice on any missing power-or-clock settings or MFD nodes required for the AC300 PHY

Confirmation whether additional kernel/config patches are needed

Thanks in advance for any pointers!


 

3 часа назад, GeEg сказал:

I’ve collected a full hardware/software report via armbianmonitor—see the logs here: https://paste.armbian.com/rolisaboru
 

What I’m looking for

A known-good snippet of device-tree (base DTS or overlay) that brings up the internal EMAC1 PHY on sun50i-h618

Advice on any missing power-or-clock settings or MFD nodes required for the AC300 PHY

 

> sunxi-gmac 5030000.ethernet end0: No PHY found!

The first question. What brand of chip is used in your case?

 

The second question. Is this an external device?

[  341.101053] usb 2-1: new high-speed USB device number 2 using ehci-platform
[  341.257994] usb 2-1: New USB device found, idVendor=0b95, idProduct=772b, bcdDevice= 0.01
[  341.258024] usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[  341.258033] usb 2-1: Product: AX88772B
[  341.258039] usb 2-1: Manufacturer: ASIX Elec. Corp.
[  341.258045] usb 2-1: SerialNumber: E5A1DD
[  341.902647] asix 2-1:1.0 (unnamed net_device) (uninitialized): PHY [usb-002:002:10] driver [Asix Electronics AX88772C] (irq=POLL)
[  341.905987] Asix Electronics AX88772C usb-002:002:10: attached PHY driver (mii_bus:phy_addr=usb-002:002:10, irq=POLL)

 

In order for the ethernet-phy to work, it is necessary to turn on the PWM on the internal pin of the processor.

As example see: arch/arm64/boot/dts/allwinner/sun50i-h618-orangepi-zero2w.dts

and arch/arm64/boot/dts/allwinner/sun50i-h618-orangepi-zero2w.dts#L521-L539

  • Author
Quote

> sunxi-gmac 5030000.ethernet end0: No PHY found!

The first question. What brand of chip is used in your case?


It is Allwinner H618, Quad-core ARM Cortex™-A53 processor.

 

Quote

The second question. Is this an external device?

[ 341.101053] usb 2-1: new high-speed USB device number 2 using ehci-platform [ 341.257994] usb 2-1: New USB device found, idVendor=0b95, idProduct=772b, bcdDevice= 0.01 [ 341.258024] usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 341.258033] usb 2-1: Product: AX88772B [ 341.258039] usb 2-1: Manufacturer: ASIX Elec. Corp. [ 341.258045] usb 2-1: SerialNumber: E5A1DD [ 341.902647] asix 2-1:1.0 (unnamed net_device) (uninitialized): PHY [usb-002:002:10] driver [Asix Electronics AX88772C] (irq=POLL) [ 341.905987] Asix Electronics AX88772C usb-002:002:10: attached PHY driver (mii_bus:phy_addr=usb-002:002:10, irq=POLL)


Yes it is external USB network card,  which I used just to be able to send logs made via armbianmonitor to the internet. 


The state You see in the logs is just latest stage of many different attempts: with custom overlays and/or fixes on the sun50i-h618-bananapi-m4-zero.dtb (decompile, fix, compile, boot). In addition have tried some patches using H616 files. 
I also found problem is due to, PHY isn't properly powered on, based on topic: https://github.com/armbian/build/pull/6617 but after plenty of tries didnt manage to make it work ;(

13 часов назад, GeEg сказал:
Цитата

> sunxi-gmac 5030000.ethernet end0: No PHY found!

The first question. What brand of chip is used in your case?


It is Allwinner H618, Quad-core ARM Cortex™-A53 processor.

I meant which Eth chip is used in your case

Bananapi-m4-berry:
h618 ==> Eth chip rtl8211f ==> connecting socket

Bananapi-m4-zero:
h618 ==> Eth chip ????  ==> connecting socket

As far as I understand, this is some kind of expansion card for the 26 pin connector.
Can you post a diagram of this expansion board here.
The brand of the Ethernet chip matters.

  • Author
Quote

I meant which Eth chip is used in your case
 

Bananapi-m4-berry:
h618 ==> Eth chip rtl8211f ==> connecting socket

Bananapi-m4-zero:
h618 ==> Eth chip ???? ==> connecting socket
 

As far as I understand, this is some kind of expansion card for the 26 pin connector.
Can you post a diagram of this expansion board here.
The brand of the Ethernet chip matters.

Ach, OK. On Banana Pi M4 Zero (H618), the Ethernet PHY is integrated into the SoC, specifically within the AC200 block. There is no external Ethernet PHY chip like RTL8211F — the EMAC1 interface uses RMII and talks directly to the internal PHY.

The issue I’m facing is likely due to incompatibility with kernel 6.x.x. I haven’t been able to get any overlay to work properly. However, with a kernel from the 5.4.x series, Ethernet works out-of-the-box on the same hardware.

Any insights on proper overlay structure or required patches for AC200 support in newer kernels would be highly appreciated. Thanks for your help!

  • Author
Quote

This is being worked on https://lore.kernel.org/linux-sunxi/20250526002924.2567843-1-james.hilliard1@gmail.com/T/#t

 

There is a version of this that was ported over from a vendor kernel to Armbian. https://github.com/armbian/build/pull/6617

Thanks for the info and the PR link.

So the fix is in the works but not merged yet — any idea how long it might take to land in nightlies or mainline?

Should I keep the thread open until then, or just close it and reopen if needed after testing?

Thanks again.

Hello everyone, I have the same situation. On versions 6.х.х the built-in wifi and bluetooth do not work, but the board is compatible with a 7inch HDMI LCD 1024x600 Pixel monitor. But in kernel versions 5.х.х wifi and bluetooth work, but do not work with a 7inch HDMI LCD monitor. That's how things are, just keep up with the news with new patches or builds.

BPI-M4-Zero: Fast Ethernet (AC300 internal EPHY) working on current 6.18

Following up on the reports that EMAC1 never detects a PHY on this board — I got it working and submitted a PR: armbian/build#10328

WHAT WAS WRONG

The board DTS describes an external RMII PHY at MDIO address 1. That PHY doesn't exist. The Fast Ethernet comes from the SoC-internal AC300 EPHY, routed through the 24-pin FPC connector, so the MAC was probing correctly and finding nothing on the bus.

WHAT WAS NEEDED

Three things had to line up.

First, CONFIG_AC300_PHY=y and the h616-internal-phy stmmac patch. These landed in main around June/July 2026, so stable 26.2.1 doesn't have them. I lost a good while on that. Rolling/nightly or a self-built image is required.

Second, compatible changed from allwinner,sun50i-h616-emac to allwinner,sun50i-h616-internal-emac. The first one maps to the H6 variant, which is external PHY only.

Third, the AC300 description itself: mdio-mux plus mdio-internal, PWM5 as the 2MHz reference clock, and the SID calibration cell. I based it on arm64-dts-sun50i-h616-bigtreetech-cb1-emac1-ac300.patch

RESULTS (BPI-M4-Zero v2, Noble, current 6.18.42)

Link at 100Mb/s full duplex, DHCP on first boot

iperf3: 94.7 Mbit/s over 20s, zero retransmissions

I kept EMAC1 disabled in the base DTS since it needs the FPC expansion board, and enabling it would reserve PA0-PA9 plus PWM5 for everyone else. There's a separate overlay (bananapi-m4-zero-fpc24-eth) to turn it on.

ONE ODDITY

ethtool reports "Supported link modes: 10baseT/Half 10baseT/Full" even though the link negotiates 100/Full and reaches line rate. Looks like a capability-reporting issue in the AC300 PHY driver rather than anything in the DTS. Worth a look from someone more familiar with that driver.

ALSO

The analog codec just needs &codec enabled with "Line Out", "LINEOUT" routing, same as sun50i-h618-orangepi-zero2w.dts. Included in the same PR.

A note for anyone who finds unofficial images in the Banana Pi wiki's Google Drive: those are built from the BPI fork of armbian-build, which doesn't carry the AC300 patches. The newer kernel version alone won't help.

Edited by Julio Cesar Goldner Vendramini

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.