[bug report] sunxi: H6: no ethernet on Orange Pi One Plus

Anne Macedo retpolanne at posteo.net
Sun Jul 9 21:05:25 CEST 2023


On Sun, Jul 09, 2023 at 04:32:22PM +0000, Anne Macedo wrote:
> On Tue, Jul 04, 2023 at 11:22:29PM +0000, Anne Macedo wrote:
> > Hey!
> > 
> > I'm trying to bake Linux images for the Orange Pi One Plus using Yocto.
> > Everything works fine, except for Ethernet.
> > 
> > On the u-boot prompt:
> > 
> > => dhcp
> > No ethernet found.
> > 
> > After adding:
> > 
> > CONFIG_SPL_SPI_SUNXI=y
> > CONFIG_SUN8I_EMAC=y
> > 
> > to configs/orangepi_one_plus_defconfig, I started seeing this error:
> > 
> > => dhcp
> > sun8i_emac_eth_start: Timeout
> > 
> > I saw this other bug report but I couldn't really understand what has
> > been made to fix this issue [1].
> > 
> > More context here [2].
> > 
> > [1] https://lists.denx.de/pipermail/u-boot/2021-June/451357.html
> > [2] https://github.com/linux-sunxi/meta-sunxi/issues/387
> > 
> > Regards,
> > Anne
Quick update
> 
> Just wanted to share a summary of my findings about the ethernet on the
> Orange Pi One Plus (Allwinner H6).
> 
> 1. PMIC should not be disabled. I tested and if I disable PMIC, MAC
> never turns on, even if I force the gpio PD6 pin to be on. When building
> tfa, use SUNXI_SETUP_REGULATORS=1 or just don't pass it.
> 
> 2. These configs are needed on configs/orangepi_one_plus_defconfig
> 
> CONFIG_SPL_SPI_SUNXI=y
CONFIG_SPL_SPI_SUNXI may not be needed in this context, I don't know why
I mentioned it in the first place.
> CONFIG_SUN8I_EMAC=y
> 
> 3. With this config, there's this strange behavior where ethernet is
> only detected after a crash:
> 
> # Fresh boot
> Net:   Could not get PHY for ethernet at 5020000: addr 1
> No ethernet found.
> 
> # Forcing the board to crash
> => mii dump
> "Synchronous Abort" handler, esr 0x96000044
> 
> Code: 32000021 d5033fbf 91408013 f9481a60 (b9004801) 
> Resetting CPU ...
> 
> resetting ...
> 
> # Reboot
> Net:   eth0: ethernet at 5020000
> 
> 4. I'm testing CONFIG_MACPWR="PD6" and that successfully enabled MAC on
> u-boot (I see the LEDs turning on). However, I see the behaviour from #3
> but crash-rebooting doesn't seem to enable ethernet...

According to this patch [1], we should use DM driver, so I believe
CONFIG_MACPWR is deprecated. 

I then added these configs:

# Required by regulator
CONFIG_DM=y
# Required by regulator fixed
CONFIG_DM_REGULATOR=y
# Required by the ethernet's definition on the dts
CONFIG_DM_REGULATOR_FIXED=y
# This adds a handy regulator cmd on u-boot
CONFIG_CMD_REGULATOR=y

With the regulator command, I turned it on and saw the LEDs turning on
and dhcp "trying" to work (it doesn't get an IP though).

=> regulator list
| Device              | regulator-name                  | Parent
| vcc5v               | vcc-5v                          | root_driver
| gmac-3v3            | vcc-gmac-3v3                    | root_driver
=> regulator dev vcc-gmac-3v3
dev: vcc-gmac-3v3 @ gmac-3v3
=> regulator enable
=> dhcp
BOOTP broadcast 1
BOOTP broadcast 2

For some reason, vcc-gmac-3v3 is disabled by default, and it only seems
to start manually for me. It sometimes start when I try a mii dump or a
dhcp, but there's a lot of phy errors that make it unusable.

[1] https://lists.denx.de/pipermail/u-boot/2022-December/501397.html
> 
> Regards,
> Anne


More information about the U-Boot mailing list