Network won't initialize

Till Straumann strauman at slac.stanford.edu
Mon Sep 4 15:05:50 UTC 2006


Steve Hunt wrote:

>I had a problem (perhaps the same) with a realtek chip, I reported it to
>the mailing list some time ago.  It was a problem with IP checksum not
>being calculated correctly (have a look with etherreal)- strangely a
>delay in the code calling the checksum routine made it work! - but then
>(in cpukit/libnetworking/netinet/ip_output.c) I changed the calls to ip-
>  
>
>>ip_sum = in_cksum_hdr(ip); into ip->ip_sum = in_cksum(m, hlen); and it
>>    
>>
>works.
>
>More recently there was a long discussion on checksums ... indicating
>problems due to compiler optimizations, so maybe it has now been
>fixed.   
>  
>
The checksum problem should be fixed (make sure your sources are up-to 
date).

The first things to try:

1) since you're using BOOTP, the first thing the network  does is 
broadcasting a
     BOOTP request. Use a sniffer to find out if that request makes it 
out onto the
     wire.
2) find a way to count interrupts. If the count doesn't increase on a 
busy network
     or then you send something [e.g,. arp req] to the box then 
something is wrong.

     The first things to check would be the base address and interrupt 
line information.

HTH
-- Till

>Steve Hunt
>
>On Mon, 2006-09-04 at 17:04 +0930, robe0413 at flinders.edu.au wrote:
>  
>
>>Hi everyone,
>>
>>I've got a pc386 BSP, with a reatlek 8139D network card. I know RTEMS does not
>>include a driver for this card, but I was able to find one that supposible
>>works, which I have attached.
>>
>>The problem is that when I try to initialize the network via
>>rtems_bsdnet_initialize_network() the system just hangs and does nothing.
>>
>>The network is being configured by the following header file:
>>
>>/**
>> * Contains the Network configuration for the PC104
>> *
>> *@AUTHOR David Roberts
>> *@DATE 01/09/06
>> *@VERSION 1.00
>> */
>>
>>#include <bsp.h>
>>
>>/* defines and headers for the rtk driver */
>>//#define __INSIDE_RTEMS_BSD_TCPIP_STACK__
>>//#define Os_RTEMS
>>#include "libNICS.h"
>>
>>#define NETWORK_TASK_PRIORITY 30
>>#define NETWORK_DRIVER_NAME "rt1"
>>#define NETWORK_DRIVER_ATTACH rtems_rtk_driver_attach
>>#define NETWORK_DRIVER_IRQ 11
>>
>>//#define RTEMS_BSP_NETWORK_DRIVER_ATTACH rtems_NE_driver_attach
>>
>>static struct rtems_bsdnet_ifconfig netdriver_config = {
>>  NETWORK_DRIVER_NAME,
>>  NETWORK_DRIVER_ATTACH,
>>  NULL, /* next IF */
>>  NULL, /* BOOTP supplies IP address */
>>  NULL, /* BOOTP supplies IP net mask */
>>  NULL, /* Defaults hardware address */
>>  0,    /* ignore broadcast */
>>  0,    /* mtu */
>>  0,    /* rbuf_count */
>>  0,    /* xbuf_count */
>>  0,    /* port */
>>  NETWORK_DRIVER_IRQ, /* irno */
>>  0    /* bpar */
>>};
>>
>>struct rtems_bsdnet_config rtems_bsdnet_config = {
>>  &netdriver_config,
>>  rtems_bsdnet_do_bootp,
>>  //  NETWORK_TASK_PRIORITY,
>>  //  256*1024, /* MBUF spze */
>>  //  512*1024, /* MBUF cluster space */
>>};
>>
>>
>>
>>If anyone has some solution or things I could try I would greatly appriciate it,
>>as I've been starring at this problem for days with no solution.
>>
>>Regards,
>>David Roberts
>>    
>>
>
>  
>





More information about the users mailing list