This is the mail archive of the ecos-discuss@sourceware.org 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: cirrus ep93xx - ecos works, network problems


 
> > > We have a custom cirrus ep9307 based board. Cirrus has a software package
> > > for their ep93xx-based boards, which contains patches for linux and a
> > > redboot-only ecos. Redboot and linux works fine on our board. I have
> > > managed to work the basic ecos, but I have trouble with the network.
> > > 
> > > Is there anybody who made the network work, and can help? We would be very 
> > > thankful for any help.
> > 
> > The normal problem here is that the network device driver for Redboot
> > is polled io, where as a full eCos device driver is interrupt
> > driven. I suggest you take a look at the device driver and see what it
> > actually implements.
> 
> The problem is not so theoretical:-) I'm looking and testing and
> modifying the driver until yesterday. It seems that someone at cirrus have written
> the driver "correctly" because there is a redboot and a real-kernel related
> code in it, there is an IT initialised, a NETDEVTAB_ENTRY etc. (but,
> strange that the real IT related routines usually in hal/<proc>/src/proc_misc.c 
> were missing from the patch, but I've added them...) Network ITs are working etc.
> 
> The problem where I stopped: There is register in the network related part of the processor, 
> which is set to 1 to sign that there is a new data filled and ready to send. But when this register
> is set to 1 second times the whole board stops working at this line, prints before this line are 
> appearing but prints after are not. (but these lines are common with the redboot code, so 
> perhaps these are algorithmically right) 
> On the other hand the board cannot be ping-ed, end receive events are not comming (but these are 
> coming under redboot...)
> 
> So if somebody has an ideo to try, I would be very grateful.
> 

In the meantime I'm implemented the trick found in the cs8900a driver, which can
be configured to use a thread (continously calling { cyg_thread_delay(5); s = splnet();
ep93xx_poll(sc); splx(s); } instead of using interrupts, but it is not help anything.

By the way, is this trick have to work at all, or is this a "dead-end" left in the code?

Ferenc Deak


-- 
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]