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: cs8900a problem


On Thu, 2004-05-06 at 16:13, Bob Koninckx wrote:
> Ignoring the frame seems to do the trick (at first sight). I suppose
> that if ethernet frames would be lost, upper layers will take care of
> that, right?
> 
> I do believe, however, that the real problem lies with the device
> driver, which should not be delivering zero length frames in the first
> place. According to the cs8900a datasheet, enabling interrupts in the
> RxCFG register but leaving the corresponding acceptance bit unset in the
> RxCTL register will result in the device reporting zero length frames. I
> tried the following change in the cs8900_start function
> 
> //    put_reg(base, PP_RxCFG, PP_RxCFG_RxOK | PP_RxCFG_CRC |
> //                      PP_RxCFG_RUNT | PP_RxCFG_EXTRA);
>     put_reg(base, PP_RxCFG, PP_RxCFG_RxOK);
>     cpd->rxmode = PP_RxCTL_RxOK | PP_RxCTL_Broadcast | PP_RxCTL_IA;
>     put_reg(base, PP_RxCTL, cpd->rxmode);
> 
> Although this could have explained what happened, it didn't solve
> anything. My observation that the zero length is always returned when
> the main polling loop is entered three times has been confirmed today.
> Don't know if it means anything, but it gives me the impression that it
> could be a hardware overrun.

I've never seen this happen on any system with this chip, so I'm not
sure why it happens.  Of course this chip, like most others, has it's
own vulgarities and this is probably just another one, albeit freshly
discovered.

If ignoring zero length frames works, then by all means ignore them.
The rest (protocols, etc) should handle it just fine.
 
> 
> Bob
> 
> On Thu, 2004-05-06 at 07:17, Bob Koninckx wrote:
> > On Thu, 2004-05-06 at 00:08, Gary Thomas wrote:
> > > On Wed, 2004-05-05 at 15:41, Bob Koninckx wrote:
> > > > After some (a lot) digging, I've come closer to my ethernet redboot
> > > > problem.
> > > > 
> > > > 
> > > > 
> > > > I further noticed that this zero length frame is only seen if the while
> > > > loop in the main polling function gets entered at least three times. I
> > > > have no idea what could be wrong, Hints or tips are welcome here!
> > > 
> > > What happens if you just ignore frames with a zero length?
> > > What's the status (stat) value when the length is zero?
> > > 
> > 
> > stat always equals 0x04 (RxEvent without any flags set). I'll try and
> > see what happens if I ignore zero length frames.
> > 
> > Thanks,
> > 
> > Bob
> > 
-- 
Gary Thomas <gary@mlbassoc.com>
MLB Associates


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


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