Re: Marvell 88E609x switch?
From: Lennert Buytenhek <hidden>
Date: 2009-02-27 14:40:07
On Fri, Feb 27, 2009 at 07:36:07AM -0700, Gary Thomas wrote:
quoted
quoted
quoted
quoted
quoted
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?