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

Pali Rohár
2015-02-18T15:19:52Z

[-- Attachment #1: Type: Text/Plain, Size: 3177 bytes --]

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>;

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.