Module Name: src
Committed By: tsutsui
Date: Sun Apr 23 06:58:00 UTC 2023
Modified Files:
src/sys/arch/luna68k/dev: spc.c
src/sys/arch/luna68k/luna68k: mainbus.c
Log Message:
Explicitly check machine type (LUNA-II) on secondary spc(4) probe.
So that individual mainbus_attach_args for both LUNA and LUNA-II
are no longer necessary.
While here, use proper address macro in <machine/board.h>.
Tested on both LUNA and LUNA-II.
To generate a diff of this commit:
cvs rdiff -u -r1.10 -r1.11 src/sys/arch/luna68k/dev/spc.c
cvs rdiff -u -r1.20 -r1.21 src/sys/arch/luna68k/luna68k/mainbus.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/arch/luna68k/dev/spc.c
diff -u src/sys/arch/luna68k/dev/spc.c:1.10 src/sys/arch/luna68k/dev/spc.c:1.11
--- src/sys/arch/luna68k/dev/spc.c:1.10 Tue Jan 22 15:44:25 2013
+++ src/sys/arch/luna68k/dev/spc.c Sun Apr 23 06:57:59 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: spc.c,v 1.10 2013/01/22 15:44:25 tsutsui Exp $ */
+/* $NetBSD: spc.c,v 1.11 2023/04/23 06:57:59 tsutsui Exp $ */
/*-
* Copyright (c) 2000 The NetBSD Foundation, Inc.
@@ -31,7 +31,7 @@
#include <sys/cdefs.h> /* RCS ID & Copyright macro defns */
-__KERNEL_RCSID(0, "$NetBSD: spc.c,v 1.10 2013/01/22 15:44:25 tsutsui Exp $");
+__KERNEL_RCSID(0, "$NetBSD: spc.c,v 1.11 2023/04/23 06:57:59 tsutsui Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -40,6 +40,7 @@ __KERNEL_RCSID(0, "$NetBSD: spc.c,v 1.10
#include <machine/bus.h>
#include <machine/cpu.h>
#include <machine/autoconf.h>
+#include <machine/board.h>
#include <dev/scsipi/scsi_all.h>
#include <dev/scsipi/scsipi_all.h>
@@ -66,11 +67,17 @@ spc_mainbus_match(device_t parent, cfdat
if (strcmp(ma->ma_name, spc_cd.cd_name))
return 0;
-#if 0
- if (badaddr((void *)ma->ma_addr, 4))
+
+ /*
+ * LUNA-I doesn't have the secondary SCSI.
+ * However we cannot check it by badaddr() at the address range
+ * of the secondary SCSI on LUNA-II because the address bus lines
+ * are not fully decoded on LUNA-I and the primary SCSI registers
+ * are also accessible at the seconadary address range.
+ */
+ if (machtype == LUNA_I && ma->ma_addr != SCSI_ADDR)
return 0;
- /* Experiments proved 2nd SPC address does NOT make a buserror. */
-#endif
+
return 1;
}
Index: src/sys/arch/luna68k/luna68k/mainbus.c
diff -u src/sys/arch/luna68k/luna68k/mainbus.c:1.20 src/sys/arch/luna68k/luna68k/mainbus.c:1.21
--- src/sys/arch/luna68k/luna68k/mainbus.c:1.20 Thu Apr 13 11:44:10 2023
+++ src/sys/arch/luna68k/luna68k/mainbus.c Sun Apr 23 06:57:59 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: mainbus.c,v 1.20 2023/04/13 11:44:10 tsutsui Exp $ */
+/* $NetBSD: mainbus.c,v 1.21 2023/04/23 06:57:59 tsutsui Exp $ */
/*-
* Copyright (c) 2000 The NetBSD Foundation, Inc.
@@ -31,7 +31,7 @@
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: mainbus.c,v 1.20 2023/04/13 11:44:10 tsutsui Exp $");
+__KERNEL_RCSID(0, "$NetBSD: mainbus.c,v 1.21 2023/04/23 06:57:59 tsutsui Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -39,26 +39,17 @@ __KERNEL_RCSID(0, "$NetBSD: mainbus.c,v
#include <machine/cpu.h>
#include <machine/autoconf.h>
+#include <machine/board.h>
static const struct mainbus_attach_args luna_devs[] = {
- { "clock", 0x45000000, -1 }, /* Mostek TimeKeeper */
- { "lcd", 0x4d000000, -1 }, /* Sharp LM16X212 LCD module */
- { "le", 0xf1000000, 3 }, /* Am7990 */
- { "sio", 0x51000000, 6 }, /* uPD7201A */
- { "xpbus", 0x71000000, -1 }, /* HD647180XP */
- { "fb", 0xc1100000, -1 }, /* BrookTree RAMDAC */
- { "spc", 0xe1000000, 2 }, /* MB89352 */
-};
-
-static const struct mainbus_attach_args luna2_devs[] = {
- { "clock", 0x45000000, -1 }, /* Dallas TimeKeeper */
- { "lcd", 0x4d000000, -1 }, /* Sharp LM16X212 LCD module */
- { "le", 0xf1000000, 3 }, /* Am7990 */
- { "sio", 0x51000000, 6 }, /* uPD7201A */
- { "xpbus", 0x71000000, -1 }, /* HD647180XP */
- { "fb", 0xc1100000, -1 }, /* BrookTree RAMDAC */
- { "spc", 0xe1000000, 2 }, /* internal MB89352 */
- { "spc", 0xe1000040, 2 }, /* external MB89352 */
+ { "clock", NVRAM_ADDR, -1 }, /* Mostek/Dallas TimeKeeper */
+ { "lcd", OBIO_PIO1A, -1 }, /* Sharp LM16X212 LCD module */
+ { "le", LANCE_ADDR, 3 }, /* Am7990 */
+ { "sio", OBIO_SIO, 6 }, /* uPD7201A */
+ { "xpbus", TRI_PORT_RAM, -1 }, /* HD647180XP */
+ { "fb", BMAP_PALLET2, -1 }, /* BrookTree RAMDAC */
+ { "spc", SCSI_ADDR, 2 }, /* internal MB89352 */
+ { "spc", SCSI_2_ADDR, 2 }, /* external MB89352 (on LUNA-II) */
};
static void mainbus_attach(device_t, device_t, void *);
@@ -87,13 +78,9 @@ mainbus_attach(device_t parent, device_t
const struct mainbus_attach_args *devs;
struct mainbus_attach_args ma;
- if (machtype == LUNA_II) {
- devs = luna2_devs;
- ndevs = __arraycount(luna2_devs);
- } else {
- devs = luna_devs;
- ndevs = __arraycount(luna_devs);
- }
+ devs = luna_devs;
+ ndevs = __arraycount(luna_devs);
+
aprint_normal("\n");
for (i = 0; i < ndevs; i++) {
ma = devs[i];