[parisc-linux] lasi scsi driver

Helge Deller Helge.Deller@ruhr-uni-bochum.de
Fri, 3 Mar 2000 02:34:03 +0100


Am Thu, 02 Mar 2000 schrieb Gyula Matics:
> > Aside from the mailbox problems, have you added code to flush/purge
> > entries for payload data?
> It is not a clean mailbox system. It is mixing data and commands in the
> mailbox...
> > > I know that the architecture supports setting a page non-cacheable.
> > > My question is if it is possible / good idea to set the mailbox page
> > > to non-cacheable?
> > 
> > Philipp Rumpf mentioned a possible implementation to me in a private
> > e-mail (make_page_uncached()). He's open to other ideas and/or
> > interfaces if another architecture has already solved this problem.
> The driver was originally written for m68k and one can find this code
> fragments in it:
>     cache_push(virt_to_phys((void *)(instance->hostdata[0])), 8192);
>     cache_clear(virt_to_phys((void *)(instance->hostdata[0])), 8192);
>     kernel_set_cachemode(instance->hostdata[0], 8192, IOMAP_NOCACHE_SER);

Theese function (in the same order) was used in the lasi-ethernet-driver too.
Maybe you want to take a look at the functions dma_cache_inv() and
dma_cache_wback(), which I defined  at the top of the lasi_82596.c driver.
Currently this is really only a bad hack, but I think this is the way you could
go until make_page_uncached() is available.... ?
This means:
cache_push() -> dma_cache_wback()   and
cache_clear() -> dma_cache_inv().
I just added this hack, since currently dma_cache_inv() is defined as
flush_all_caches(), and this function doesn´t INVALIDATES the cache.

> > in Documentation/DMA-mapping.txt. (I reccomend version 2.3.47
> OK, i'll read it.
> Gyula