Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/sys/dev/podulebus Add support for Oak and HCCS SCSI cards fi...
details: https://anonhg.NetBSD.org/src/rev/5bee317f53f1
branches: trunk
changeset: 512059:5bee317f53f1
user: bjh21 <bjh21%NetBSD.org@localhost>
date: Wed Jul 04 15:01:08 2001 +0000
description:
Add support for Oak and HCCS SCSI cards fitted with PowerROMs. Since this
depends on podloader support, it won't work on arm32 yet.
diffstat:
sys/dev/podulebus/files.podulebus | 6 +-
sys/dev/podulebus/hcsc.c | 11 +++++-
sys/dev/podulebus/oak.c | 15 ++++++---
sys/dev/podulebus/powerromreg.h | 64 +++++++++++++++++++++++++++++++++++++++
4 files changed, 86 insertions(+), 10 deletions(-)
diffs (169 lines):
diff -r 65f5ff901ba9 -r 5bee317f53f1 sys/dev/podulebus/files.podulebus
--- a/sys/dev/podulebus/files.podulebus Wed Jul 04 14:33:43 2001 +0000
+++ b/sys/dev/podulebus/files.podulebus Wed Jul 04 15:01:08 2001 +0000
@@ -1,15 +1,15 @@
-# $NetBSD: files.podulebus,v 1.12 2001/07/04 14:33:43 bjh21 Exp $
+# $NetBSD: files.podulebus,v 1.13 2001/07/04 15:01:08 bjh21 Exp $
device podulebus { [slot = -1] }
define podloader
# Oak SCSI
-device oak: scsi, ncr5380sbc
+device oak: scsi, ncr5380sbc, podloader
attach oak at podulebus
file dev/podulebus/oak.c oak
# HCCS 8-bit SCSI
-device hcsc: scsi, ncr5380sbc
+device hcsc: scsi, ncr5380sbc, podloader
attach hcsc at podulebus
file dev/podulebus/hcsc.c hcsc
diff -r 65f5ff901ba9 -r 5bee317f53f1 sys/dev/podulebus/hcsc.c
--- a/sys/dev/podulebus/hcsc.c Wed Jul 04 14:33:43 2001 +0000
+++ b/sys/dev/podulebus/hcsc.c Wed Jul 04 15:01:08 2001 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: hcsc.c,v 1.6 2001/06/12 11:52:03 bjh21 Exp $ */
+/* $NetBSD: hcsc.c,v 1.7 2001/07/04 15:01:08 bjh21 Exp $ */
/*
* Copyright (c) 2001 Ben Harris
@@ -75,7 +75,7 @@
#include <sys/param.h>
-__KERNEL_RCSID(0, "$NetBSD: hcsc.c,v 1.6 2001/06/12 11:52:03 bjh21 Exp $");
+__KERNEL_RCSID(0, "$NetBSD: hcsc.c,v 1.7 2001/07/04 15:01:08 bjh21 Exp $");
#include <sys/systm.h>
#include <sys/kernel.h>
@@ -92,6 +92,7 @@
#include <dev/podulebus/podulebus.h>
#include <dev/podulebus/podules.h>
+#include <dev/podulebus/powerromreg.h>
#include <dev/podulebus/hcscreg.h>
@@ -132,9 +133,15 @@
{
struct podulebus_attach_args *pa = aux;
+ /* Normal ROM */
if (pa->pa_product == PODULE_HCCS_IDESCSI &&
strncmp(pa->pa_descr, "SCSI", 4) == 0)
return 1;
+ /* PowerROM */
+ if (pa->pa_product == PODULE_ALSYSTEMS_SCSI &&
+ podulebus_initloader(pa) == 0 &&
+ podloader_callloader(pa, 0, 0) == PRID_HCCS_SCSI1)
+ return 1;
return 0;
}
diff -r 65f5ff901ba9 -r 5bee317f53f1 sys/dev/podulebus/oak.c
--- a/sys/dev/podulebus/oak.c Wed Jul 04 14:33:43 2001 +0000
+++ b/sys/dev/podulebus/oak.c Wed Jul 04 15:01:08 2001 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: oak.c,v 1.2 2001/05/26 20:53:53 bjh21 Exp $ */
+/* $NetBSD: oak.c,v 1.3 2001/07/04 15:01:08 bjh21 Exp $ */
/*
* Copyright (c) 1998 The NetBSD Foundation, Inc.
@@ -51,7 +51,7 @@
#include <sys/param.h>
-__KERNEL_RCSID(0, "$NetBSD: oak.c,v 1.2 2001/05/26 20:53:53 bjh21 Exp $");
+__KERNEL_RCSID(0, "$NetBSD: oak.c,v 1.3 2001/07/04 15:01:08 bjh21 Exp $");
#include <sys/systm.h>
#include <sys/kernel.h>
@@ -98,10 +98,15 @@
{
struct podulebus_attach_args *pa = aux;
- if (matchpodule(pa, MANUFACTURER_OAK, PODULE_OAK_SCSI, -1) == 0)
- return(0);
+ if (matchpodule(pa, MANUFACTURER_OAK, PODULE_OAK_SCSI, -1))
+ return 1;
- return(1);
+ /* PowerROM */
+ if (pa->pa_product == PODULE_ALSYSTEMS_SCSI &&
+ podulebus_initloader(pa) == 0 &&
+ podloader_callloader(pa, 0, 0) == PRID_OAK_SCSI1)
+ return 1;
+
}
/*
diff -r 65f5ff901ba9 -r 5bee317f53f1 sys/dev/podulebus/powerromreg.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sys/dev/podulebus/powerromreg.h Wed Jul 04 15:01:08 2001 +0000
@@ -0,0 +1,64 @@
+/* $NetBSD: powerromreg.h,v 1.1 2001/07/04 15:01:08 bjh21 Exp $ */
+
+/*
+ * This file is in the public domain.
+ */
+
+/*
+ * PowerROM card types
+ */
+
+/*
+ * The Partis PowerROM is a replacement ROM (or rather series of ROMs)
+ * for an assortment of SCSI cards for Acorn machines. It's awkward
+ * in that it replaces the podule ID with its own, which is the same
+ * for all PowerROMs (and for Power-tec SCSI cards). To find out the
+ * actual hardware underneath it, we have to call the podule loader in
+ * the ROM, and it will return one of the following constants.
+ *
+ * <URL:http://home.eunet.no/~kjetilbt/power-tec.mbox>
+ */
+
+#define PRID_POWERTEC 0x00 /* Power-tec card, ID in hardware */
+
+#define PRID_MORLEY_SCSI1 0x11 /* Morley 16 bit SCSI-1 */
+#define PRID_MORLEY_CACHED 0x12 /* Morley 16 bit Cached SCSI-1 */
+#define PRID_MORLEY_TURBO 0x13 /* Morley Turbo 16 bit SCSI-1 */
+
+#define PRID_OAK_SCSI1 0x21 /* Oak 16 bit SCSI-1 */
+
+#define PRID_CUMANA_SCSI1_8 0x31 /* Cumana 8 bit SCSI-1 */
+#define PRID_CUMANA_SCSI1_16 0x32 /* Cumana 16 bit SCSI-1 */
+#define PRID_CUMANA_SCSI2 0x33 /* Cumana 16/32 bit SCSI-2 */
+#define PRID_CUMANA_SCSI3 0x34 /* Cumana 32 bit Ultra SCSI-3 */
+
+#define PRID_LINDIS_SCSI1 0x41 /* Lindis 8/16 bit SCSI-1 */
+
+#define PRID_HCCS_SCSI1 0x51 /* HCCS 8 bit SCSI-1 */
+#define PRID_HCCS_REDSHIFT 0x52 /* HCCS RedShift 16 bit SCSI-1 */
+
+#define PRID_TECHNO_SCSI1 0x61 /* Techno 16 bit SCSI-1 */
+
+#define PRID_ARXE_SCSI1 0x71 /* Arxe/TSP 16 bit SCSI-1 */
+#define PRID_ARXE_SCSI1_2 0x72 /* Arxe/TSP 16 bit SCSI-1 */
+#define PRID_ARXE_TURBO 0x73 /* Arxe/TSP 8 bit Turbo SCSI-1 */
+
+#define PRID_MCS_CONNECT32 0x81 /* MCS Connect 32 bit SCSI-2 */
+
+#define PRID_CASTLE_SCSI2 0x91 /* Castle 16 bit SCSI-2 */
+
+#define PRID_ACORN_SCSI1 0xa1 /* Acorn 16 bit SCSI-1 */
+
+#define PRID_SYMBIOS_UWIDE 0xb1 /* Symbios 32 bit UltraWide SCSI-2 */
+
+/* I don't think the ones below will ever appear on a podule */
+
+#define PRID_PARALLEL_ATAPI 0xe1 /* Misc Parallel ATAPI */
+#define PRID_IOEB_ATAPI 0xe2 /* Misc ADFS IOEB ATAPI */
+#define PRID_IOMD_ATAPI 0xe3 /* Misc ADFS IOMD ATAPI */
+
+#define PRID_PARALLEL_SCSI1 0xf1 /* Misc Parallel SCSI-1 */
+#define PRID_ECONET_SCSI1 0xf2 /* Misc Econet SCSI-1 */
+#define PRID_UPODULE_SCSI1 0xf3 /* Misc uPodule SCSI-1 */
+#define PRID_EPST_SCSI1 0xf4 /* Misc EPST SCSI-1 */
+
Home |
Main Index |
Thread Index |
Old Index