This is the mail archive of the
ecos-discuss@sources.redhat.com
mailing list for the eCos project.
Re: Facing problem with i82559 driver...
- From: "Venkatesh" <venkatc at in dot ceeyes dot com>
- To: ecos-discuss at sources dot redhat dot com
- Date: Wed, 7 Aug 2002 02:50:29 -0700
- Subject: Re: [ECOS] Facing problem with i82559 driver...
Hi Andrew Lunn,
Thanks for your valuable comments and continued help.
With what you have said, I have downloaded the image onto the Redboot
PC through serial and then tested and debugged the image through
network using GDB. It is not working if we download and debug the
image through network.
Now it's working fine thro serial and our desperation ended at last.
Thanks and Regards,
Venkatesh.
Date: 8/6/2002 14:50:10 +0200
From: Andrew Lunn <andrew.lunn@ascom.ch>
To: Venkatesh <venkatc@in.ceeyes.com>
CC: ecos-discuss@sources.redhat.com
Subject: Re: [ECOS] Facing problem with i82559 driver... All headers
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