[bug report] sunxi: H6: no ethernet on Orange Pi One Plus
Anne Macedo
retpolanne at posteo.net
Fri Jul 7 15:45:52 CEST 2023
On Fri, Jul 07, 2023 at 08:42:33AM -0300, Anne Macedo wrote:
> On Thu, Jul 06, 2023 at 11:51:54PM +0000, Anne Macedo wrote:
> > On Wed, Jul 05, 2023 at 02:15:43PM -0300, Fabio Estevam wrote:
> > > On Wed, Jul 5, 2023 at 1:31 PM Anne Macedo <retpolanne at posteo.net> wrote:
> > >
> > > > I think I'm on the right path :)
> > > >
> > > > 1. Included SUNXI_SETUP_REGULATORS=0 to the bl31 make
> > > > 2. Changed the phy mode on arch/arm/dts/sun50i-h6-orangepi-one-plus.dts
> > > > From rgmii-id to rgmii
> > >
> > > This does not look like the correct fix. Please see this commit from Linux:
> > > https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.4.1&id=544cc3f8573bf9a82e8f348741f2f68d2a8376fb
> > >
> > > > More info on [1][2][3]
> > > > 3. Added this configs to configs/orangepi_one_plus_defconfig:
> > > > CONFIG_SPL_SPI_SUNXI=y
> > > > CONFIG_SUNXI_NO_PMIC=y
> > >e> CONFIG_SUN8I_EMAC=y
> > > >
> > > > Result:
> > > >
> > > > U-Boot 2023.04-gfd4ed6b (Apr 03 2023 - 20:38:50 +0000) Allwinner
> > > > Technology
> > > >
> > > > CPU: Allwinner H6 (SUN50I)
> > > > Model: OrangePi One Plus
> > > > DRAM: 1 GiB
> > > > Core: 55 devices, 17 uclasses, devicetree: separate
> > > > WDT: Not starting watchdog at 7020400
> > > > MMC: mmc at 4020000: 0
> > > > Loading Environment from FAT... Unable to read "uboot.env" from
> > > > mmc0:1...
> > > > In: serial at 5000000
> > > > Out: serial at 5000000
> > > > Err: serial at 5000000
> > > > Net: eth0: ethernet at 5020000
> > > >
> > > > => dhcp
> > > > sun8i_emac_eth_start: Timeout
> > > > => mdio list
> > > > ethernet at 5020000:
> > > > 1 - Generic PHY <--> ethernet at 5020000
> > >
> > > What about using the Realtek PHY driver instead of the Generic one?
> > >
> > > --- a/configs/orangepi_one_plus_defconfig
> > > +++ b/configs/orangepi_one_plus_defconfig
> > > @@ -8,3 +8,6 @@ CONFIG_SUNXI_DRAM_H6_LPDDR3=y
> > > # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
> > > CONFIG_USB_EHCI_HCD=y
> > > CONFIG_USB_OHCI_HCD=y
> > > +CONFIG_PHY_REALTEK=y
> > > +CONFIG_RGMII=y
> > > +CONFIG_MII=y
> > >
> > > Does this help?
> >
> > Sorry for the delay, life came in the way.
> >
> > u-boot config:
> > CONFIG_PHY_REALTEK=y
> > CONFIG_RGMII=y
> > CONFIG_MII=y
> >
> > tfa config:
> > SUNXI_SETUP_REGULATORS=0
> >
> > result:
> > => dhcp
> > No ethernet found.
> >
> > u-boot config:
> > CONFIG_SPL_SPI_SUNXI=y
> > CONFIG_SUNXI_NO_PMIC=y
> > CONFIG_SUN8I_EMAC=y
> > CONFIG_PHY_REALTEK=y
> > CONFIG_RGMII=y
> > CONFIG_MII=y
> >
> > tfa config:
> > SUNXI_SETUP_REGULATORS=0
> >
> > result:
> > Net: PHY reset timed out
> > eth0: ethernet at 5020000
> > => dhcp
> > sun8i_emac_eth_start: Timeout
> > => mdio list
> > ethernet at 5020000:
> > 1 - Generic PHY <--> ethernet at 5020000
> >
> > It's interesting that it keeps using Generic PHY.
> >
> > Regards,
> > Anne
> >
>
> OH! I believe I discovered something I overlooked:
>
> On arch/arm/dts/sun50i-h6-orangepi-one-plus.dts:
>
> reg_gmac_3v3: gmac-3v3 {
> compatible = "regulator-fixed";
> regulator-name = "vcc-gmac-3v3";
> regulator-min-microvolt = <3300000>;
> regulator-max-microvolt = <3300000>;
> startup-delay-us = <100000>;
> enable-active-high;
> gpio = <&pio 3 6 GPIO_ACTIVE_HIGH>; /* PD6 */
> vin-supply = <®_aldo2>;
> };
>
> After I connected GPIO 3 to GPIO 6, the Ethernet LED turned on!
Okay, I completely misunderstood this... and I lost the combination that
turned the LED on :(
It seems that PD6 is not exposed on the GPIO header [1]. It is defined
on the FBGA on the pin map session of the datasheet [2]. So, I don't
believe I need to short the pins to get it working, but somehow it at
least powered on the Ethernet port. I wish I remember the combination.
[1]
https://forum.armbian.com/uploads/monthly_2020_04/873961756_Opioneplusgpio.jpg.e28c37c0f66189dc68e86a428a5a8b95.jpg
[2]
https://linux-sunxi.org/images/5/5c/Allwinner_H6_V200_Datasheet_V1.1.pdf
UPDATE: I did it!
On u-boot shell:
gpio set pd6
then dhcp command works :). However, it doesn't get an IP and with
static IP pinging doesn't work.
It seems to be able to send BOOTP broadcasts but it doesn't get an IP...
Combination was:
u-boot config:
CONFIG_SPL_SPI_SUNXI=y
CONFIG_SUN8I_EMAC=y
tfa config:
SUNXI_SETUP_REGULATORS=1 (or just unset this)
>
> I still see:
>
> => dhcp
> sun8i_emac_eth_start: Timeout
>
> And
>
> Net: PHY reset timed out
> eth0: ethernet at 5020000
>
> Regards,
> Anne
Regards,
Anne
More information about the U-Boot
mailing list