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.