[U-Boot] U-Boot on PXA320

Ben Warren biggerbadderben at gmail.com
Thu Dec 24 19:10:33 CET 2009


Hello Dennis,

Sending the e-mail once is enough.

Dennis Semakin wrote:
> Hello everybody.
> I have a question about u-boot net subsystem on Toradex Colibri PXA320.
> Let's see on lib_arm/board.c file
> Here is code where network subsystem initializes (At least I think so)
> ..
> #if defined(CONFIG_CMD_NET)
> #if defined(CONFIG_NET_MULTI)
>         puts ("Net:   ");
> #endif
>         eth_initialize(gd->bd); 
> #if defined(CONFIG_RESET_PHY_R)
>         debug ("Reset Ethernet PHY\n");
>         reset_phy();
> #endif
> #endif
>         /* main_loop() can return to retry autoboot, if so just run it again. */
>         for (;;) {
>                 main_loop ();
>         }
> ..
> I'm interested of eth_initialize(gd->bd) function.
> If I compile without CONFIG_NET_MULTI option the implementation of this function is
> (in net/eth.c file)
> ..
> #elif defined(CONFIG_CMD_NET) && !defined(CONFIG_NET_MULTI)
>
> #warning Ethernet driver is deprecated.  Please update to use CONFIG_NET_MULTI
>
> extern int at91rm9200_miiphy_initialize(bd_t *bis);
> extern int mcf52x2_miiphy_initialize(bd_t *bis);
> extern int ns7520_miiphy_initialize(bd_t *bis);
>
> int eth_initialize(bd_t *bis)
> {
> #if defined(CONFIG_MII) || defined(CONFIG_CMD_MII)
>         miiphy_init();
> #endif
>
> #if defined(CONFIG_AT91RM9200)
>         at91rm9200_miiphy_initialize(bis);
> #endif
> #if defined(CONFIG_MCF52x2)
>         mcf52x2_miiphy_initialize(bis);
> #endif
> #if defined(CONFIG_DRIVER_NS7520_ETHERNET)
>         ns7520_miiphy_initialize(bis);
> #endif
>         return 0;
> }
> #endif
> Then as result, my network subsystem is hang when I run someone net command(e.g. ping)
> And if I compile with CONFIG_NET_MULTI option the implementation of this function is
> ..
> int eth_initialize(bd_t *bis)
> {
>         unsigned char env_enetaddr[6];
>         int eth_number = 0;
>
>         eth_devices = NULL;
>         eth_current = NULL;
>         show_boot_progress (64);
> #if defined(CONFIG_MII) || defined(CONFIG_CMD_MII)
>         miiphy_init();
> #endif
>         /* Try board-specific initialization first.  If it fails or isn't
>          * present, try the cpu-specific initialization */
>         if (board_eth_init(bis) < 0)
>                 cpu_eth_init(bis);
>
> #if defined(CONFIG_DB64360) || defined(CONFIG_CPCI750)
>         mv6436x_eth_initialize(bis);
> #endif
> #if defined(CONFIG_DB64460) || defined(CONFIG_P3Mx)
>         mv6446x_eth_initialize(bis);
> #endif
>         if (!eth_devices) {
>                 puts ("No ethernet found.\n");
>                 show_boot_progress (-64);
>         } else {
> ..
> And then I get message "No ethernet found..."
>
> Questions: where is net subsystem initialization code for Colibri PXA320 board in u-boot?
>   
Maybe I'm not looking in the right place, but I can't find this board in 
the source tree.  The closest I can find is a machine type definition 
for MACH_TYPE_COLIBRI, but no boards have CONFIG_MACH_COLIBRI set.  
Without the source code, there's only so much help we can give you.
> Where and how the structure eth_device is fill for that board? Or it don't need?
>   
I have no idea what Ethernet controller is on this board, but judging 
from your debug trace, whatever it is, it uses the old API (non 
CONFIG_NET_MULTI), and either the driver or your board is broken or not 
configured properly.

A bit of background:  there are two network device drivers: the old one, 
which only supports one interface per board; and the new one 
(CONFIG_NET_MULTI), which supports one or more interfaces.  Over time, 
we're converting all drivers to use the new API, but this takes effort 
and obviously hardware that is out-of-tree won't be updated.  As the 
#warning tells you, the old API is going away soon.
> Thanks
> Best regard
> Dennis Semakin
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot
>   

regards,
Ben


More information about the U-Boot mailing list