[U-Boot] U-Boot on PXA320

Dennis Semakin insane79 at yandex.ru
Thu Dec 24 12:26:01 CET 2009


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?
Where and how the structure eth_device is fill for that board? Or it don't need?
Thanks
Best regard
Dennis Semakin


More information about the U-Boot mailing list