This is the mail archive of the ecos-discuss@sources.redhat.com mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Facing problem with i82559 driver...


On Tue, Aug 06, 2002 at 03:51:56AM -0700, Venkatesh wrote:
> Hi Andrew,
> This is the snapshot which we we observed during debugging thro GDB.
> This will be of better help for you.
> Please guide us in this process.
> 
> Thanks in Advance.
> Venkatesh.
> 
> ******************************************************************
> 
> (gdb) b i82559_init
> Breakpoint 1 at 0x10d10a: 
> file //D/eCOS/packages/devs/eth/intel/i82559/current/src/if_i82559.c,
> (gdb) c
> Continuing.
> intel_i82559_init
> [New thread 1]
> [Switching to thread 1]
> 
> Breakpoint 1, i82559_init (ndp=0x134f40)
>     
> at //D/eCOS/packages/devs/eth/intel/i82559/current/src/if_i82559.c:1311
> 1311        sc = (struct eth_drv_sc *)(ndp->device_instance);
> (gdb) n
> 1312        p_i82559 = (struct i82559 *)(sc->driver_private);
> (gdb) n
> 1314        IF_BAD_82559( p_i82559 ) {
> (gdb) n
> 1323        if ( 0 == initialized++ ) {
> (gdb) n
> 1325            if ( ! pci_init_find_82559s() ) {
> (gdb) n
> pci_init_find_82559s()
> Finished cyg_pci_init();
> eth0 = 82559
>  Wired to HAL vector 43
> Found device on bus 0, devfn 0x40:
>  Note that board is active. Probed sizes and CPU addresses invalid!
>  Vendor    0x8086
>  Device    0x1229
>  Command   0x0007, Status 0x0290
>  Class/Rev 0x02000008
>  Header 0x00
>  SubVendor 0x8086, Sub ID 0x000c
>  BAR[0]    0xe1100000 / probed size 0x00000000 / CPU addr 0xe1100000
>  BAR[1]    0x00006401 / probed size 0x00000000 / CPU addr 0x00006400
>  BAR[2]    0xe1000000 / probed size 0x00000000 / CPU addr 0xe1000000
>  BAR[3]    0x00000000 / probed size 0x00000000 / CPU addr 0x00181f6c
>  BAR[4]    0x00000000 / probed size 0x00110232 / CPU addr 0x0001f5c0
>  BAR[5]    0x00000000 / probed size 0x0013a9a0 / CPU addr 0x00135f98
>  eth0 configured
>  memory address = 0xe1100000
>  I/O address = 0x00006400
>  **** Device enabled for I/O and Memory and Bus Master
> 1334        if (0 == p_i82559->found)
> (gdb) n
> 1337        p_i82559->mac_addr_ok = 0;
> (gdb) n
> 1339        ioaddr = p_i82559->io_address; // get I/O address for 82559
> (gdb) n
> 1342        os_printf("Init82559 %d @ %x\n82559 Self Test\n",
> (gdb) n
> Init82559 0 @ 134f40
> 82559 Self Test
> 967     {
> (gdb) n
> 975         cyg_drv_interrupt_mask(p_i82559->vector);
> (gdb) n
> 989         return old;
> (gdb) n
> 1349        i82559_reset(p_i82559);
> (gdb) n
> 1352        if ( (selftest = (cyg_uint32)pciwindow_mem_alloc(32) ) == 0)
> (gdb) n
> 1354        p_selftest = (cyg_uint32 *) ((selftest + 15) & ~0xf);
> (gdb) n
> 1355        p_selftest[0] = p_selftest[1] = -1;
> (gdb) n
> 385     {   HAL_WRITE_UINT32( io_address, value );    }
> (gdb) n
> Remote communication error: Connection reset by peer.

Connection reset by peer. i.e. your board. You have just
re-initialised the ethernet device the gdb stub is using to talk to
gdb. Thats why you lost the connection. There are parts of eCos you
cannot debug using gdb.  If you use the serial port for gdb you can
then debug the network code. Don't try to debug the serial port
thought!

        Andrew

-- 
Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos
and search the list archive: http://sources.redhat.com/ml/ecos-discuss


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]