Fixing the SCSI DMA EOP problem.

This commit is contained in:
phil 1993-10-05 21:37:02 +00:00
parent 757cce049d
commit 61a498a571
2 changed files with 11 additions and 8 deletions

View File

@ -30,7 +30,7 @@
*
* dp.h: defines for the dp driver.
*
* $Id: dpreg.h,v 1.2 1993/10/01 22:59:44 phil Exp $
* dpreg.h,v 1.2 1993/10/01 22:59:44 phil Exp
*/
/* Most of this comes from the Minix dp driver by Bruce Culbertson. */
@ -39,7 +39,7 @@
*/
#define DP_CTL 0xffd00000 /* base for control registers */
#define DP_DMA 0xffe00000 /* base for data registers */
#define DP_DMA_EOP (DP_DMA | 0xe0000) /* SCSI DMA with EOP asserted */
#define DP_DMA_EOP (DP_DMA | 0xf0000) /* SCSI DMA with EOP asserted */
#define DP_CURDATA (DP_CTL+0)
#define DP_OUTDATA (DP_CTL+0)
#define DP_ICMD (DP_CTL+1)

View File

@ -163,21 +163,24 @@ _low_level_init ()
/* SCSI Polled (Reduced space.) Addresses FFD00000 - FFDFFFFF */
for (ix = 0x100; ix < 0x200; ix++)
WR_ADR(int,p1 + ix*4, 0x30000043 + ((ix - 0x100)<<12));
WR_ADR(int, p1 + ix*4, 0x30000043 + ((ix - 0x100)<<12));
/* SCSI "DMA" (Reduced space.) Addresses FFE00000 - FFEFFFFF */
for (ix = 0x200; ix < 0x300; ix++)
WR_ADR(int,p1 + ix*4, 0x38000043 + ((ix - 0x200)<<12));
/* SCSI "DMA" (Reduced space.) Addresses FFE00000 - FFEEFFFF */
for (ix = 0x200; ix < 0x2ff; ix++)
WR_ADR(int, p1 + ix*4, 0x38000043 + ((ix - 0x200)<<12));
/* SCSI "DMA" With A22 (EOP) Addresses FFEF0000 - FFEFFFFF */
WR_ADR(int, p1 + 0x2ff*4, 0x388ff043);
/* The e-prom Addresses FFF00000 - FFF3FFFF */
for (ix = 0x300; ix < 0x340; ix++)
WR_ADR(int,p1 + ix*4, 0x10000043 + ((ix - 0x300)<<12));
WR_ADR(int, p1 + ix*4, 0x10000043 + ((ix - 0x300)<<12));
/* Finally the ICU! Addresses FFFFF000 - FFFFFFFF */
WR_ADR(int, p1+4*0x3ff, 0xFFFFF043);
/* Add the memory mapped I/O entry in the directory. */
WR_ADR(int,p0+4*1023, p1 + 0x43);
WR_ADR(int, p0+4*1023, p1 + 0x43);
/* Map the kernel pages starting at FE00000 and at 0.