Subject: Re: SCSI _is_ still broken on VS3100
To: None <entropy@zippy.bernstein.com>
From: maximum entropy <entropy@zippy.bernstein.com>
List: port-vax
Date: 01/06/1999 01:12:47
>Date: Tue, 5 Jan 1999 12:42:35 -0500 (EST)
>From: maximum entropy <entropy@zippy.bernstein.com>
>
>instances of 0x200C0080 to 0x200C0180).  I haven't had the time to
>play with it yet...and I may be way out in left field here.  Oh well.

I wasn't quite in left field...but maybe right field.  Here's the real
fix (actually two fixes for two different problems):

--- /sys/arch/vax/vsa/vsbus.c-orig	Mon Dec  7 07:18:49 1998
+++ /sys/arch/vax/vsa/vsbus.c	Wed Jan  6 00:58:01 1999
@@ -171,7 +171,8 @@
 		return;
 	}
 
-	if ((vax_confdata & KA420_CFG_STCMSK) == KA420_CFG_NONE)
+	if (vax_boardtype == VAX_BTYP_420
+	    && (vax_confdata & KA420_CFG_STCMSK) == KA420_CFG_NONE)
 		return; /* No ctlrs */
 
 	/* Ok, we have at least one scsi ctlr */
--- /sys/arch/vax/vax/ka43.c-orig	Sat Jan  2 07:15:17 1999
+++ /sys/arch/vax/vax/ka43.c	Wed Jan  6 00:47:05 1999
@@ -52,6 +52,7 @@
 #include <machine/ka43.h>
 #include <machine/clock.h>
 
+#include "ncr.h"
 #include "smg.h"
 
 void	ka43_conf __P((struct device*, struct device*, void*));
@@ -368,6 +369,19 @@
 	    (vm_offset_t)KA43_CT2_BASE + KA43_CT2_SIZE,
 	    VM_PROT_READ|VM_PROT_WRITE);
 
+#if NNCR > 0
+	/* SCSI controller */
+	MAPVIRT(sca_regs, (KA43_SCS_SIZE / VAX_NBPG));
+	pmap_map((vm_offset_t)sca_regs, (vm_offset_t)KA43_SCS_BASE,
+	    (vm_offset_t)KA43_SCS_BASE + KA43_SCS_SIZE,
+	    VM_PROT_READ|VM_PROT_WRITE);
+
+	/* SCSI DMA.  Not used right now, untested. */
+	MAPVIRT(dma_area, (KA43_DMA_SIZE / VAX_NBPG));
+	pmap_map((vm_offset_t)dma_area, (vm_offset_t)KA43_DMA_BASE,
+		 (vm_offset_t)KA43_DMA_BASE + KA43_DMA_SIZE,
+		 VM_PROT_READ|VM_PROT_WRITE);
+#endif
 	/*
 	 * Oh holy shit! It took me over one year(!) to find out that
 	 * the 3100/76 has to use diag-mem instead of physical memory


Cheers,
entropy

--
entropy -- it's not just a good idea, it's the second law.