Re: [PATCH] ARM: dts: Revert disabling of smc91x for n900

Tony Lindgren
2015-02-18T16:38:25Z

* Pali Rohár <pali.rohar@gmail.com> [150218 07:23]:
> On Tuesday 06 January 2015 00:02:29 Tony Lindgren wrote:
> > Revert "ARM: dts: Disable smc91x on n900 until bootloader
> > dependency is removed". We've now fixed the issues that
> > caused problems with uninitialized hardware depending on
> > the bootloader version. Mostly things got fixed with
> > the following commits:
> >
> > 9a894953a97b ("ARM: dts: Fix bootloader version dependencies
> > by muxing n900 smc91x pins") 7d2911c43815 ("net: smc91x: Fix
> > gpios for device tree based booting")
> >
> > Note that this only affects the early development boards
> > with Ethernet that we still have in a few automated boot
> > test systems.
> >
> > Signed-off-by: Tony Lindgren <tony@atomide.com>
> >
> > --- a/arch/arm/boot/dts/omap3-n900.dts
> > +++ b/arch/arm/boot/dts/omap3-n900.dts
> > @@ -702,9 +702,6 @@
> >
> > ethernet@gpmc {
> > compatible = "smsc,lan91c94";
> > -
> > - status = "disabled";
> > -
> > interrupt-parent = <&gpio2>;
> > interrupts = <22 IRQ_TYPE_LEVEL_HIGH>; /* gpio54 */
> > reg = <1 0x300 0xf>; /* 16 byte IO range at offset 0x300
> > */
>
> Hello Tony,
>
> to make smc ethernet working in n900 qemu I needed to apply this patch:
>
> diff --git a/arch/arm/boot/dts/omap3-n900.dts b/arch/arm/boot/dts/omap3-n900.dts
> index ff36fbe..d96eeb8 100644
> --- a/arch/arm/boot/dts/omap3-n900.dts
> +++ b/arch/arm/boot/dts/omap3-n900.dts
> @@ -770,7 +770,8 @@
> compatible = "smsc,lan91c94";
> interrupt-parent = <&gpio2>;
> interrupts = <22 IRQ_TYPE_LEVEL_HIGH>; /* gpio54 */
> - reg = <1 0x300 0xf>; /* 16 byte IO range at offset 0x300 */
> +// reg = <1 0x300 0xf>; /* 16 byte IO range at offset 0x300 */
> + reg = <1 0x0 0xf>; /* 16 byte IO range at offset 0x300 */
> bank-width = <2>;
> pinctrl-names = "default";
> pinctrl-0 = <&ethernet_pins>;

Oh cool, the 0x300 offset is there mostly to suppress warnings about
non-standard location.

> With this patch I see in dmesg:
>
> [ 20.577911] smc91x 2000000.ethernet (unnamed net_device) (uninitialized): smc91x: smc_probe
> [ 20.580535] smc91x 2000000.ethernet (unnamed net_device) (uninitialized): smc91x: bank signature probe
> returned 0x3300
> [ 20.585327] smc91x 2000000.ethernet (unnamed net_device) (uninitialized): smc91x: revision = 0x3391
> [ 20.590087] smc91x.c: v1.1, sep 22 2004 by Nicolas Pitre <nico@fluxnic.net>
> [ 20.593627] smc91x 2000000.ethernet (unnamed net_device) (uninitialized): smc_reset
> [ 20.596832] smc91x 2000000.ethernet (unnamed net_device) (uninitialized): smc_phy_detect
> [ 20.611938] smc91x 2000000.ethernet (unnamed net_device) (uninitialized): smc91x: smc_shutdown
> [ 20.615875] smc91x 2000000.ethernet eth0: SMC91C11xFD (rev 1) at d08be000 IRQ 166
> [ 20.618682]
> [ 20.621124] smc91x 2000000.ethernet eth0: Ethernet addr: 52:54:00:12:34:56
> [ 20.624938] smc91x 2000000.ethernet eth0: No PHY found
>
> (and eth0 exists in ifconfig)
>
> If I do not apply my patch I got this error message:
>
> [ 22.134704] smc91x 2000300.ethernet (unnamed net_device) (uninitialized): smc91x: bank signature probe
> returned 0x0000
> [ 22.140014] smc91x: not found (-19).
>
> and no ethernet device was registered.
>
> With 2.6.28 kernel with N900 patches (but smc91x is unmodified!) ethernet device is working fine.

OK that's good news. Care to do a patch to set the offset 0x0 with added
comment that qemu needs it? I'll test to make sure it works on the
real hardware as well.

Regards,

Tony