new NCR scsi driver!

Harald Koenig (koenig@tat.physik.uni-tuebingen.de)
Tue, 25 Jun 1996 14:58:04 +0200 (MET DST)


Hi,

there is another driver for the NCR 53C8xx chips for Linux which
is the FreeBSD driver ported to Linux by Gerard Roudier <groudier@iplus.fr>.
this driver seems to be much more bug free (don't have any problems with
DISCONNECT enabled anymore!!) and supports wide-scsi, configuration via
/proc/scsi/ncr53c8xx/* and...

thanks to the work of Gerard this driver also works now for ALPHA with
the patch below (mostly long -> 32bit cleanup) which is relative to
ncrBsd2Linux-1.11-src.tar.gz (can be found e.g. on sunsite; I got it
from Incoming, don't know if it has been moved already).

the driver itself works fine but there are two problems left I don't really
know how to fix this right:

- memory mapped I/O doesn't work, probably because vremap() in mm/valloc.c
is not correct ? trying to map the I/O registers, vremap() returns NULL.
using one of the patches below for mm/vmalloc.c and drivers/scsi/ncr53c8xx.c
fixes the vremap() problem but then the kernel immideately panics with
"Unable to hangle kernel paging request..." in readl() when trying to
access the mapped I/O registers.
how do the registers have to be mapped ?

-------------------------------------------------------------------------------
--- /mnt/soft/1/linux/mm/vmalloc.c Thu Apr 4 00:13:09 1996
+++ mm/vmalloc.c Tue Jun 25 14:37:34 1996
@@ -306,7 +306,7 @@
void * addr;
struct vm_struct * area;

- if (offset < high_memory)
+ if (offset < (MAP_NR(high_memory) << PAGE_SHIFT))
return NULL;
if (offset & ~PAGE_MASK)
return NULL;
--- /mnt/soft/1/linux/drivers/scsi/ncr53c8xx.c Tue Jun 25 10:14:20 1996
+++ drivers/scsi/ncr53c8xx.c Tue Jun 25 14:40:23 1996
@@ -302,7 +302,7 @@
{
u_long page_base = ((u_long) base) & PAGE_MASK;
u_long page_offs = ((u_long) base) - page_base;
- return (vm_offset_t) ((u_long) vremap(page_base, page_offs+size) + page_offs);
+ return (vm_offset_t) ((u_long) vremap(page_base | PAGE_OFFSET, page_offs+size) + page_offs);
}
static inline void unmap_pci_mem(vm_offset_t vaddr, u_long size)
{
--- /mnt/soft/1/linux/drivers/scsi/ncr53c8xx.c Tue Jun 25 10:14:20 1996
+++ drivers/scsi/ncr53c8xx.c Tue Jun 25 14:40:23 1996
@@ -302,7 +302,7 @@
{
u_long page_base = ((u_long) base) & PAGE_MASK;
u_long page_offs = ((u_long) base) - page_base;
- return (vm_offset_t) ((u_long) vremap(page_base, page_offs+size) + page_offs);
+ return (vm_offset_t) ((u_long) vremap(page_base | PAGE_OFFSET, page_offs+size) + page_offs) & ~PAGE_OFFSET;
}
static inline void unmap_pci_mem(vm_offset_t vaddr, u_long size)
{
-------------------------------------------------------------------------------

- MILO doesn't support vremap() an vfree() yet

-------------------------------------------------------------------------------
begin 644 ncrBsd2Linux-1.11-axp_patch.gz
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
,5:(9`"9U[%=Q3```
`
end

-- 
All SCSI disks will from now on                     ___       _____
be required to send an email notice                0--,|    /OOOOOOO\
24 hours prior to complete hardware failure!      <_/  /  /OOOOOOOOOOO\
                                                    \  \/OOOOOOOOOOOOOOO\
                                                      \ OOOOOOOOOOOOOOOOO|//
Harald Koenig,                                         \/\/\/\/\/\/\/\/\/
Inst.f.Theoret.Astrophysik                              //  /     \\  \
koenig@tat.physik.uni-tuebingen.de                     ^^^^^       ^^^^^