* [ECOS] EDOSK-2674 ethernet drivers -TCP problem @ 2003-11-19 14:06 Uwe Kindler 2003-11-29 13:48 ` [ECOS] " Yoshinori Sato 0 siblings, 1 reply; 5+ messages in thread From: Uwe Kindler @ 2003-11-19 14:06 UTC (permalink / raw) To: ecos-discuss; +Cc: ysato Hello, i buildet the Redboot image for the EDOSK-2674 platform including ethernetdrivers for the onboard SMSC LAN91C96 chip. The ping command works fine an so I tried to connect GDB via Remote/TCP. But the connection does not work. In the gdb console is printed: Ignorig packet error and continuing. When I analyze the net traffic with Packetyzer and follow the TCP stream, i can see the following: RedBoot>0+$Hc-1#09RedBoot>0$Hc-1#09RedBoot>0RedBoot>0$Hc-1#09RedBoot>0RedBoo t>0$Hc-1#09RedBoot>0$Hc-1#09RedBoot>0RedBoot>0RedBoot>0-$Hc-1#09-RedBoot>0Re dBoot>0-RedBoot>0-+$qC#b4RedBoot>0RedBoot>0..... From the EDOSK-board is only the "RedBoot>0" part. When I look into the TCP part of the "RedBoot>0" packet then the ckecksum is wrong tcp.checksum = Checksum: 0x442d (incorrect, should be 0x342d) Is there a bug within the TCP part of the Redboot stand alone stack or does it look like a bug within the ethernet device driver or did i missed a configuration option? Regards, Uwe -- Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos and search the list archive: http://sources.redhat.com/ml/ecos-discuss ^ permalink raw reply [flat|nested] 5+ messages in thread
* [ECOS] Re: EDOSK-2674 ethernet drivers -TCP problem 2003-11-19 14:06 [ECOS] EDOSK-2674 ethernet drivers -TCP problem Uwe Kindler @ 2003-11-29 13:48 ` Yoshinori Sato 2003-12-05 8:54 ` Andrew Lunn 0 siblings, 1 reply; 5+ messages in thread From: Yoshinori Sato @ 2003-11-29 13:48 UTC (permalink / raw) To: Uwe Kindler; +Cc: ecos-discuss At Wed, 19 Nov 2003 15:06:12 +0100 (CET), Uwe Kindler wrote: > > Hello, > > i buildet the Redboot image for the EDOSK-2674 platform including > ethernetdrivers for the onboard SMSC LAN91C96 chip. > The ping command works fine an so I tried to connect GDB via Remote/TCP. But > the connection does not work. In the gdb console is printed: Ignorig packet > error and continuing. > > When I analyze the net traffic with Packetyzer and follow the TCP stream, i > can see the following: > > RedBoot>0+$Hc-1#09RedBoot>0$Hc-1#09RedBoot>0RedBoot>0$Hc-1#09RedBoot>0RedBoo > t>0$Hc-1#09RedBoot>0$Hc-1#09RedBoot>0RedBoot>0RedBoot>0-$Hc-1#09-RedBoot>0Re > dBoot>0-RedBoot>0-+$qC#b4RedBoot>0RedBoot>0..... > > From the EDOSK-board is only the "RedBoot>0" part. > > When I look into the TCP part of the "RedBoot>0" packet then the ckecksum is > wrong > > tcp.checksum = Checksum: 0x442d (incorrect, should be 0x342d) > > Is there a bug within the TCP part of the Redboot stand alone stack or does > it look like a bug within > the ethernet device driver or did i missed a configuration option? > > Regards, Uwe > Bug in smsc91cxx driver. Send odd length packet to last byte broken. Fix patch (sorry adhoc). Index: packages/devs/eth/smsc/lan91cxx/current/src/if_lan91cxx.c =================================================================== RCS file: /cvsroot/ecos-h8/ecos/packages/devs/eth/smsc/lan91cxx/current/src/if_lan91cxx.c,v retrieving revision 1.3 diff -u -r1.3 if_lan91cxx.c --- packages/devs/eth/smsc/lan91cxx/current/src/if_lan91cxx.c 22 May 2003 12:45:22 -0000 1.3 +++ packages/devs/eth/smsc/lan91cxx/current/src/if_lan91cxx.c 29 Nov 2003 13:42:54 -0000 @@ -794,7 +794,7 @@ // Prepare header: put_data(sc, CYG_CPU_TO_LE16(0)); // reserve space for status word // packet length (includes status, byte-count and control shorts) - put_data(sc, CYG_CPU_TO_LE16(0x7FE & (plen + 6)) ); // Always even, always < 15xx(dec) + put_data(sc, CYG_CPU_TO_LE16(0x7FE & (plen + 6 + 1)) ); // Always even, always < 15xx(dec) // Put data into buffer for (i = 0; i < sg_len; i++) { @@ -803,7 +803,7 @@ CYG_ASSERT(0 == (len & 1) || (i == (sg_len-1)), "odd length"); CYG_ASSERT( sdata, "No sg data pointer here" ); - while(len >= sizeof(*sdata)) { + while(len > 0) { put_data(sc, *sdata++); len -= sizeof(*sdata); } -- Yoshinori Sato <ysato@users.sourceforge.jp> -- Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos and search the list archive: http://sources.redhat.com/ml/ecos-discuss ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [ECOS] Re: EDOSK-2674 ethernet drivers -TCP problem 2003-11-29 13:48 ` [ECOS] " Yoshinori Sato @ 2003-12-05 8:54 ` Andrew Lunn 2003-12-05 10:24 ` [ECOS] Re: STL support under eCos, what does it take? Giovanni Perbellini 2003-12-05 14:52 ` [ECOS] Re: EDOSK-2674 ethernet drivers -TCP problem Uwe Kindler 0 siblings, 2 replies; 5+ messages in thread From: Andrew Lunn @ 2003-12-05 8:54 UTC (permalink / raw) To: Yoshinori Sato; +Cc: Uwe Kindler, ecos-discuss Hi Yoshinori > @@ -803,7 +803,7 @@ > > CYG_ASSERT(0 == (len & 1) || (i == (sg_len-1)), "odd length"); > CYG_ASSERT( sdata, "No sg data pointer here" ); > - while(len >= sizeof(*sdata)) { > + while(len > 0) { > put_data(sc, *sdata++); > len -= sizeof(*sdata); > } I don't know this chip at all, im just reading the code and deciding if to commit your patch. sizeof(*sdata) is 2. The original code will exist the loop when len == 0 or 1 and in these cases *sdata points to the end of the packet, or the last byte. Your change means it will exit when len == 0 or -1 and in these cases, *sdata points to the end of the packet, or one byte after the end of the packet. So when len is odd, the original code *sdate points to the last byte and your code *sdata points to some junk after the end of the packet. The code that follows is: control = 0; if ( 1 & plen ) { // Need to set ODD flag and insert the data unsigned char onebyte = *(unsigned char*)sdata; control = onebyte; control |= LAN91CXX_CONTROLBYTE_ODD; } ie if we have an odd length packet, get the last byte at *sdata and put it into a control word. It looks to me your change causes random junk to be in the control word. Am i reading this wrong? Thanks 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 ^ permalink raw reply [flat|nested] 5+ messages in thread
* [ECOS] Re: STL support under eCos, what does it take? 2003-12-05 8:54 ` Andrew Lunn @ 2003-12-05 10:24 ` Giovanni Perbellini 2003-12-05 14:52 ` [ECOS] Re: EDOSK-2674 ethernet drivers -TCP problem Uwe Kindler 1 sibling, 0 replies; 5+ messages in thread From: Giovanni Perbellini @ 2003-12-05 10:24 UTC (permalink / raw) To: ecos-discuss Bob, I am trying to configure STLport-4.6 in order to use it in an eCos project. Questions: 1. in stl_user_config.h there's a switch _STLP_NO_IOSTREAMS to enable for no iostream support. Is this what you used? 2. I could not find a switch for disabling the exceptions. Browsing through code, however, I see a _STLP_HAS_NO_EXCEPTIONS define. Did you just added -D_STLP_HAS_NO_EXCEPTIONS to your compile flags to disable the exceptions support? 3. would you share your .mak file? I would like to see how you linked the ecos library headers (and GCC headers?) since I am not sure I am doing it in the right way. Thanks in advance. Giovanni **************************************************************************** ************* ----- Original Message ----- Use STLPort, configure it _not_ to use iostreams or exceptions. Works great for me. Bob On Wed, 2003-01-15 at 20:36, Barton Meeks wrote: > Look back through this mailing list, it looked like > support for C++ Standard Template Library may not have > been too far off back in early 2002, before Red Hat > lost interest (and personnel). > > How much effort would it take to provide support for > STL for eCos? What needs to be done? It it work on > eCos itself or the gnu tool chain? > > __________________________________________________ > Do you Yahoo!? > Yahoo! Mail Plus - Powerful. Affordable. Sign up now. > http://mailplus.yahoo.com -- ---------------------------------------------------------------------- ir. Bob Koninckx Katholieke Universiteit Leuven Division Production Engineering, tel. +32 16 322535 Machine Design and Automation fax. +32 16 322987 Celestijnenlaan 300B bob.koninckx@mech.kuleuven.ac.be B-3001 Leuven Belgium http://www.mech.kuleuven.ac.be/pma ---------------------------------------------------------------------- -- Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos and search the list archive: http://sources.redhat.com/ml/ecos-discuss ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [ECOS] Re: EDOSK-2674 ethernet drivers -TCP problem 2003-12-05 8:54 ` Andrew Lunn 2003-12-05 10:24 ` [ECOS] Re: STL support under eCos, what does it take? Giovanni Perbellini @ 2003-12-05 14:52 ` Uwe Kindler 1 sibling, 0 replies; 5+ messages in thread From: Uwe Kindler @ 2003-12-05 14:52 UTC (permalink / raw) To: ecos-discuss; +Cc: Andrew Lunn Hello Andrew, I found the problem within the driver and fixed it by myself - now the driver works with EDOSK2674 board. Yoshinori Satos patch does not work for me. Here is my patch for smsc91cxx driver. Uwe Kindler --- if_lan91cxx.c 2003-11-18 22:05:34.000000000 +0100 +++ ../if_lan91cxx.c 2003-11-28 16:58:18.000000000 +0100 @@ -141,9 +141,8 @@ static cyg_handle_t lan91cxx_interrupt_handle; // This ISR is called when the ethernet interrupt occurs -static int -lan91cxx_isr(cyg_vector_t vector, cyg_addrword_t data - /* , HAL_SavedRegisters *regs */ ) +static int lan91cxx_isr(cyg_vector_t vector, cyg_addrword_t data) + /* , HAL_SavedRegisters *regs */ { struct eth_drv_sc *sc = (struct eth_drv_sc *)data; struct lan91cxx_priv_data *cpd = @@ -820,7 +819,7 @@ control |= LAN91CXX_CONTROLBYTE_ODD; } control |= LAN91CXX_CONTROLBYTE_CRC; // Just in case... - put_data(sc, control); + put_data(sc, CYG_CPU_TO_LE16(control)); // Enqueue the packet put_reg(sc, LAN91CXX_MMU_COMMAND, LAN91CXX_MMU_enq_packet); @@ -1071,6 +1070,7 @@ val = CYG_LE32_TO_CPU(val); plen = (val >> 16) - 6; #else + val = CYG_LE16_TO_CPU(val); plen = get_data(sc); plen = CYG_LE16_TO_CPU(plen) - 6; #endif @@ -1111,6 +1111,8 @@ val >>= 16; mlen -= 2; } else +#else + val = CYG_LE16_TO_CPU(val); #endif cp = (unsigned char *)data; > It looks to me your change causes random junk to be in the control > word. > > Am i reading this wrong? > > Thanks > 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 ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2003-12-05 14:52 UTC | newest] Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2003-11-19 14:06 [ECOS] EDOSK-2674 ethernet drivers -TCP problem Uwe Kindler 2003-11-29 13:48 ` [ECOS] " Yoshinori Sato 2003-12-05 8:54 ` Andrew Lunn 2003-12-05 10:24 ` [ECOS] Re: STL support under eCos, what does it take? Giovanni Perbellini 2003-12-05 14:52 ` [ECOS] Re: EDOSK-2674 ethernet drivers -TCP problem Uwe Kindler
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).