[parisc-linux] lasi scsi driver
Grant Grundler
grundler@cup.hp.com
Thu, 02 Mar 2000 13:19:40 -0800
"Gyula Matics" wrote:
> It's only half working. It can list the devices on the bus, but that's all.
>
> It is not working because it needs a horrible amount of cache flushing
> and I still didn't get it right. (the committed code only contains enough
> flushing to pass the two debugging tests)
Aside from the mailbox problems, have you added code to flush/purge
entries for payload data?
I was just talking about that with someone and thinking we could
put that in a "common" I/O path. I found "wakeup_bdflush()" but have
no clue what that does.
The goal here is to enable *all* SCSI disk drivers WRT to the payload data.
We are interested in getting PCI SCSI drivers working too and I know
this is going to be a problem. At least it's a problem until the
"Dynamic DMA mapping" interfaces are implemented for parisc-linux
and actually used by the drivers parisc-linux folks care about.
> The scsi card is running code that is in the main memory and the driver
> is heavily patching that. The bigger problem is that the communication
> with the card is done via a mailbox also residing in the main memory
> and the driver is assuming that this mailbox is on a non-cacheable page.
>
> 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.
I started looking into this but I'm way outta my depth here.
Like the payload data, this is a kluge only needed until the
drivers use the new "Dynamic DMA mapping" interfaces described
in Documentation/DMA-mapping.txt. (I reccomend version 2.3.47
or newer). We should be able to hide the "(make_page_uncached()"
call in those interfaces from the drivers.
thanks,
grant
Grant Grundler
Unix Development Lab
+1.408.447.7253