Binding FCC interfaces to device names in reverse order

Vitaly Bordug vbordug at ru.mvista.com
Thu Jun 15 22:53:44 EST 2006


On Thu, 15 Jun 2006 13:59:02 +0200
Laurent Pinchart <laurent.pinchart at tbox.biz> wrote:

> Hello,
> 
> I'm trying to change the order in which the MPC8248 FCC devices are bound to 
> network interface names.
> 
> The current behaviour is to handle FCC1, FCC2 and FCC3 in that order. FCC1 is 
> thus mapped to eth0 and FCC2 to eth1 (FCC3 is unused in my design).
> 
> For some reason I'd like to map FCC2 to eth0 and FCC1 to eth1. Interface names 
> are allocated as devices are registered, so I thought I could change the 
> detection order by modifying the ppc_sys_platform_devices array:
> 
>         ppc_sys_platform_devices[MPC82xx_CPM_FCC1].id = 2;
>         ppc_sys_platform_devices[MPC82xx_CPM_FCC2].id = 1;
> 
> FCC devices detection is indeed reversed, and FCC2 is mapped to eth0. Plugging 
> a cable into the FCC2 socket prints a message referencing eth0, and ifconfig 
> confirms that eth0 is running.
> 
> Unfortunately, that's where things stop working. I can't ping FCC1 or FCC2, no 
> data is received by the kernel.
> 
> Does anyone know why changing the device ids breaks the fs_enet driver ?

Obviously, because board-specific platform_data fixup use that id field to detect what soc device is that - fcc1 or fcc2 this case. So the phy's will be wrong-assigned, as well as other stuff. 

To change order pdevs are registered, you may try to disable all the fccs at the startup, and then enable them after ppc_sys_init, or just shoot enable-disable seq (this was't tested at all, but supposed to work).
> 
> Laurent Pinchart
> _______________________________________________
> Linuxppc-embedded mailing list
> Linuxppc-embedded at ozlabs.org
> https://ozlabs.org/mailman/listinfo/linuxppc-embedded
> 
> 


-- 
Sincerely, 
Vitaly



More information about the Linuxppc-embedded mailing list