summaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorgwr <gwr@NetBSD.org>1995-09-26 21:30:19 +0000
committergwr <gwr@NetBSD.org>1995-09-26 21:30:19 +0000
commit995b4710b8ea6ca98b549f615a67a6612c3dfb40 (patch)
treec5f1d445f8d8de53e54ee540f6c81b1832517db2 /sys
parent50201d2bb57ba799f1bce75fbd59ab3e49f1f43d (diff)
Correct mapinfo for Multibus PROM devices.
Diffstat (limited to 'sys')
-rw-r--r--sys/arch/sun3/stand/libsa/promdev.c29
1 files changed, 17 insertions, 12 deletions
diff --git a/sys/arch/sun3/stand/libsa/promdev.c b/sys/arch/sun3/stand/libsa/promdev.c
index c6200586b56..d214f1f6e52 100644
--- a/sys/arch/sun3/stand/libsa/promdev.c
+++ b/sys/arch/sun3/stand/libsa/promdev.c
@@ -1,4 +1,4 @@
-/* $NetBSD: promdev.c,v 1.4 1995/09/23 03:42:44 gwr Exp $ */
+/* $NetBSD: promdev.c,v 1.5 1995/09/26 21:30:19 gwr Exp $ */
/*
* Copyright (c) 1995 Gordon W. Ross
@@ -159,16 +159,21 @@ struct mapinfo {
static struct mapinfo
prom_mapinfo[] = {
- { MAP_MAINMEM, PGT_OBMEM, 0 },
- { MAP_OBIO, PGT_OBIO, 0 },
- { MAP_MBMEM, PGT_OBMEM, 0 }, /* XXX - Sun2 Multibus? */
- { MAP_MBIO, PGT_OBIO, 0 }, /* XXX - Sun2 Multibus? */
- { MAP_VME16A16D, PGT_VME_D16, 0xFFFF0000 },
- { MAP_VME16A32D, PGT_VME_D32, 0xFFFF0000 },
- { MAP_VME24A16D, PGT_VME_D16, 0xFF000000 },
- { MAP_VME24A32D, PGT_VME_D32, 0xFF000000 },
- { MAP_VME32A16D, PGT_VME_D16, 0 },
- { MAP_VME32A32D, PGT_VME_D32, 0 },
+ /* On-board memory, I/O */
+ { MAP_MAINMEM, PGT_OBMEM, 0 },
+ { MAP_OBIO, PGT_OBIO, 0 },
+ /* Multibus adapter */
+ { MAP_MBMEM, PGT_VME_D16, 0xFF000000 },
+ { MAP_MBIO, PGT_VME_D16, 0xFFFF0000 },
+ /* VME A16 */
+ { MAP_VME16A16D, PGT_VME_D16, 0xFFFF0000 },
+ { MAP_VME16A32D, PGT_VME_D32, 0xFFFF0000 },
+ /* VME A24 */
+ { MAP_VME24A16D, PGT_VME_D16, 0xFF000000 },
+ { MAP_VME24A32D, PGT_VME_D32, 0xFF000000 },
+ /* VME A32 */
+ { MAP_VME32A16D, PGT_VME_D16, 0 },
+ { MAP_VME32A32D, PGT_VME_D32, 0 },
};
static prom_mapinfo_cnt = sizeof(prom_mapinfo) / sizeof(prom_mapinfo[0]);
@@ -204,5 +209,5 @@ found:
pte += 1;
length -= NBPG;
} while (length > 0);
- return ((char*)prom_devmap);
+ return ((char*)(prom_devmap | (pa & PGOFSET)));
}