Why rtems_bsdnet_initialize_network takes 1 second?

Sergei Organov osv at javad.ru
Tue Aug 20 13:53:32 UTC 2002


Eric Norum <eric.norum at sasktel.net> writes:
> On Tuesday, August 20, 2002, at 05:11 AM, Sergei Organov wrote:
>
> > Hello,
> >
> > I've observed that execution time of rtems_bsdnet_initialize_network() is
> > about 1 second on my board. I'd like to decrease this time but before I
> > dig into the problem I'd like to ask if somebody knows out of the head
> > where this delay comes from and is intrinsic to the network code
> > initialization or not.
>
>
> This is hard to answer without more details of your setup.
> Are you using BOOTP/DHCP?

I believe I don't. At least the only packet that the board sends on startup
is:

# tcpdump -l -i eth1
tcpdump: listening on eth1
17:22:29.986797 arp who-has rcv tell rcv

where 'rcv' is the name of the board. It also seems that the packet appears at
the end of this 1 second interval.

The configuration looks like this:

// Default network interface
static struct rtems_bsdnet_ifconfig netdriver_config =
{
  RTEMS_BSP_NETWORK_DRIVER_NAME,        // name
  RTEMS_BSP_NETWORK_DRIVER_ATTACH,      // attach function
  NULL,                                 // link to next interface
  ipAddr,                               // IP address
  ipNetMask,                            // IP net mask
  conf.mac,                             // Ethernet hardware address
  0,                                    // Use default driver parameters
  0,0,0,0,0,0
};

// Network configuration
struct rtems_bsdnet_config rtems_bsdnet_config = {
  &netdriver_config,
  NULL,
  48,                   // Default network task priority
  0,                    // Default mbuf capacity
  0,                    // Default mbuf cluster capacity
  0,                    // Host name
  0,                    // Domain name
  ipGateway,            // Gateway
  0,                    // Log host
  {0, 0, 0},            // Name server(s)
  {0, 0, 0}             // NTP server(s)
};

where ipAddr, ipNetMask, conf.mac, and ipGateway are already set to the valid 
values at the time rtems_bsdnet_initialize_network() is invoked.


> What NIC are you using?  Some of them have probe code that takes a while to
> run.

I'm using CS8900A chip with the driver I've wrote myself. There is the only
wait loop in the driver initialization code with 50ms timeout so it should not
create 1 second delay anyway.

> What CPU and BSP?

It's MPC509 with my own BSP.

If this delay is not integral part of the network initialization code, I'll
dig into the problem myself and will find where the delay is, I believe. I
just wanted to make sure that I don't spend much time to finally just reinvent
the wheel.

Sergei.




More information about the users mailing list