[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <49A801E6.1040502@mlbassoc.com>
Date: Fri, 27 Feb 2009 08:08:22 -0700
From: Gary Thomas <gary@...assoc.com>
To: Lennert Buytenhek <buytenh@...tstofly.org>
CC: netdev@...r.kernel.org
Subject: Re: Marvell 88E609x switch?
Lennert Buytenhek wrote:
> On Fri, Feb 27, 2009 at 07:55:29AM -0700, Gary Thomas wrote:
>
>>>>>>>>> Also, can you show me what you're filling the dsa platform data
>>>>>>>>> structure with?
>>>>>>>> struct dsa_platform_data _switch_data = {
>>>>>>>> .port_names[0] = "lan1.1",
>>>>>>>> .port_names[1] = "lan1.2",
>>>>>>>> .port_names[2] = "lan1.3",
>>>>>>>> .port_names[3] = "lan1.4",
>>>>>>>> .port_names[4] = "lan1.5",
>>>>>>>> .port_names[5] = "lan1.6",
>>>>>>>> .port_names[6] = "lan1.7",
>>>>>>>> .port_names[7] = "lan1.8",
>>>>>>>> .port_names[10] = "cpu",
>>>>>>>> .sw_addr = 1,
>>>>>>>> };
>>>>>>> Just this should do the trick. So what's not working -- are the
>>>>>>> interfaces not showing up? Or packet RX/TX isn't working? Or
>>>>>>> something else?
>>>>>> It won't let me bring up eth0 (my scripts try to run DHCP):
>>>>>> starting network interfaces...
>>>>>> 24520:01 not found
>>>>>> eth0: Could not attach to PHY
>>>>>> ip: SIOCSIFFLAGS: No such device
>>>>>>
>>>>>> As for the other devices, they do show up if I let eth0 try to
>>>>>> attach to the PHY:
>>>>> OK. If you try to cheat the gianfar driver by having it attach to
>>>>> the PHY for lan1.1, and plug a network cable into lan1.1 so that the
>>>>> link goes up and gianfar thinks that the link on eth0 is up, does that
>>>>> enable you to pass packets over any of the switch interfaces? That
>>>>> should be working now in this stage.
>>>> So, what name do I use when the gianfar is trying to attach?
>>>> It makes this call:
>>>> phydev = phy_connect(dev, phy_id, &adjust_link, 0, interface);
>>>> where phy_id="24520:01".
>>>>
>>>> Using "24520:01:00" gets an error:
>>>> eth0: 24520:01:00 already attached
>>>>
>>>> Maybe the DSA layer/driver needs to export a device "24520:01"
>>>> which pretends all of the things that the gianfar wants (1000Mb/Full/Link)?
>>> Well, this isn't DSA-specific -- e.g. if you'd hook your CPU's
>>> ethernet MAC up to an FPGA, you'd be in the same situation.
>>>
>>> Maybe there is some fake PHY you can instantiate -- the "Fixed"
>>> MDIO bus maybe? Can you try enabling CONFIG_FIXED_PHY and pointing
>>> it to that?
>> OK, I did that:
>> Sending discover...
>> PHY: 0:01 - Link is Up - 1000/Full
>>
>> I now see the fixed PHY (pretender, configured at build time)
>> and the 8 LAN sockets:
>> root@..._target:~ ls /sys/bus/mdio_bus/devices/
>> 0:01 24520:01:01 24520:01:03 24520:01:05 24520:01:07
>> 24520:01:00 24520:01:02 24520:01:04 24520:01:06
>>
>> But nothing seems to get through the switch. Of course, I
>> know that the switch and connections are working because that's
>> the path I downloaded/booted the kernel from.
>>
>> Getting closer :-) Any ideas?
>
> :-) Do you see messages in your syslog about the lan interfaces
> being up, full duplex, etc? Something a la (from one of my boards):
>
> lan1: link up, 1000 Mb/s, full duplex, flow control disabled
> lan2: link up, 1000 Mb/s, full duplex, flow control disabled
This does seem to work:
root@..._target:~ ifconfig lan1.1 up
root@..._target:~ lan1.1: link up, 100 Mb/s, full duplex, flow control disabled
When I try it on other ports:
root@..._target:~ ifconfig lan1.2 up
root@..._target:~ ifconfig lan1.3 up
Those ports aren't plugged (and I'm 6000 miles from them, literally,
so I can't change that)
> If yes, can you up the interfaces, and send some packets over them
> and see if the TX counters on eth0 increase? If yes, can you dump
> the packets sent out over eth0 using tcpdump?
I tried to ping out and into the box. Nothing seems to go anywhere:
root@..._target:~ ifconfig
eth0 Link encap:Ethernet HWaddr 00:1D:11:81:00:00
inet addr:192.168.12.189 Bcast:192.168.12.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:17 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:1810 (1.7 KiB)
Base address:0x6000
lan1.1 Link encap:Ethernet HWaddr 00:1D:11:81:00:00
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Running tcpdump on the external network (192.168.12.x), I saw
no activity.
Do I need to do anything more than "ifconfig lan1.1 up"?
Maybe the "." is confusing things? I was just trying to
look ahead when I have 3 switches running.
Thanks
--
------------------------------------------------------------
Gary Thomas | Consulting for the
MLB Associates | Embedded world
------------------------------------------------------------
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists