On 16/04/13 20:22, Tom Rini wrote: > On Tue, Apr 16, 2013 at 08:14:13PM +0100, Mark Jackson wrote: > >> On 16/04/13 16:48, Tom Rini wrote: >>> On Tue, Apr 16, 2013 at 04:02:34PM +0100, Mark Jackson wrote:
<snip> >>>> +static struct cpsw_platform_data cpsw_data = { >>>> + .mdio_base = CPSW_MDIO_BASE, >>>> + .cpsw_base = CPSW_BASE, >>>> + .mdio_div = 0xff, >>>> + .channels = 8, >>>> + .cpdma_reg_ofs = 0x800, >>>> + .slaves = 2, >>> >>> Is this all that was needed for both interfaces to work in U-Boot, along >>> with a config change or two? If so, I should take a stab at getting >>> both working on the EVM-SK. >> >> Yes ... the config change is just to set CONFIG_PHY_ADDR to the >> correct value. >> >> Unfortunately, since the CONFIG_PHY_ADDR value is "hard-coded" into >> quite a bit of the uboot code, to change ports, you need to >> re-compile !! Not ideal, and I don't suppose it's too much work to >> get both >> working together, but I don't see much demand for it. > > Ah, so it's not quite right :( Other platforms support multiple > interfaces, but I don't know how they're setup. Tom I can see in drivers/net/cpsw.c:- static int cpsw_phy_init(struct eth_device *dev, struct cpsw_slave *slave) { ... phydev = phy_connect(priv->bus, CONFIG_PHY_ADDR, dev, slave->data->phy_if); ... } As you can see the hardcoded CONFIG_PHY_ADDR is being used, despite the fact that it might be different for each slave. Could you just replace that with "slave->data->phy_id" ? I'll give it a try and see what happens. Cheers Mark J. _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot