Re: [uCsimm] cs8900 & wait-states

From: Erwin Authried (eauth@softsys.co.at)
Date: Wed Dec 06 2000 - 11:05:33 EST


daniel haensse[SMTP:daniel.haensse@fhk.usz.ch] wrote:
> Am Mit, 06 Dez 2000 schrieben Sie:
> > daniel haensse wrote:
> > >
> > > Hi
> > >
> > > in the file uCcs8900.c in function cs89x0_probe1 I have found
> > >
> > > *(volatile unsigned short *)0xfffff112 = 0x01e1; /* 128k, 2ws, FLASH, en */
> > >
> > > why do we use six wait-states to access the device?
> > >
> > > Dani
> > > This message resent by the ucsimm@uclinux.com list server http://www.uClinux.com/
> >
> > You will have to use 1 wait state as the cs8900 has an access time of
> > 135ns and the DragonBall (16mhz) has a 100ns access time for Data
> > Valid. An additional wait state may have to be thrown in to allow for
> > any additional signal settling, although the 163ns access time of the
> > DragonBall @16mhz 1ws should be enough.
> >
> > TomW
>
> yes, I agree, so this line in the uCcs8900.c must be
> 1ws:
> *(volatile unsigned short *)0xfffff112 = 0x0191; /* 128k, 1ws, FLASH, en */
> or 2ws:
> *(volatile unsigned short *)0xfffff112 = 0x01a1; /* 128k, 2ws, FLASH, en */
> this will increase the performance of the interface.
> This message resent by the ucsimm@uclinux.com list server http://www.uClinux.com/
>
>

I agree, but I think that 1WS should be tested very well first before you trust it.
There's another possibility to improve speed for the first hardware release with
software byte swapping: Instead of the rol.w instructions, simple byte moves
will improve the block transfer speed by ~30%. I have benchmarked the results
some time ago, but the details have been lost in my desk's Bermuda Triangle.

-Erwin



This message resent by the ucsimm@uclinux.com list server http://www.uClinux.com/



This archive was generated by hypermail 2b30 : Sun Apr 07 2002 - 00:01:39 EST