summaryrefslogtreecommitdiff
path: root/sys/arch/sparc64
diff options
context:
space:
mode:
authorJason Wright <jason@cvs.openbsd.org>2002-01-12 20:19:41 +0000
committerJason Wright <jason@cvs.openbsd.org>2002-01-12 20:19:41 +0000
commit43f0012410fc640505993d4ab1f1106e5549be58 (patch)
tree576881edebcf82719c30a8f3b2dfc9fb753d51a7 /sys/arch/sparc64
parent94cdeb85bc020ba91349f66da51fe312faa10dd1 (diff)
Port of Iain Hibbert's magma driver to sparc64
Diffstat (limited to 'sys/arch/sparc64')
-rw-r--r--sys/arch/sparc64/conf/GENERIC7
-rw-r--r--sys/arch/sparc64/include/bppioctl.h63
-rw-r--r--sys/arch/sparc64/include/conf.h10
-rw-r--r--sys/arch/sparc64/sparc64/conf.c12
4 files changed, 84 insertions, 8 deletions
diff --git a/sys/arch/sparc64/conf/GENERIC b/sys/arch/sparc64/conf/GENERIC
index 3bc26cdc741..f615b05bc56 100644
--- a/sys/arch/sparc64/conf/GENERIC
+++ b/sys/arch/sparc64/conf/GENERIC
@@ -1,4 +1,4 @@
-# $OpenBSD: GENERIC,v 1.37 2002/01/06 22:18:39 jason Exp $
+# $OpenBSD: GENERIC,v 1.38 2002/01/12 20:19:40 jason Exp $
# $NetBSD: GENERIC32,v 1.18 2001/07/20 00:07:12 eeh Exp $
machine sparc64
@@ -91,6 +91,11 @@ be* at qec?
hme* at sbus? slot ? offset ?
+# Magma serial/parallel port devices
+magma* at sbus? slot ? offset ?
+mtty* at magma?
+mbpp* at magma?
+
pciide* at pci? dev ? function ? flags 0x0000
wd* at pciide? channel ? drive ? flags 0x0a00
atapiscsi* at pciide? channel ?
diff --git a/sys/arch/sparc64/include/bppioctl.h b/sys/arch/sparc64/include/bppioctl.h
new file mode 100644
index 00000000000..94227c32ab8
--- /dev/null
+++ b/sys/arch/sparc64/include/bppioctl.h
@@ -0,0 +1,63 @@
+/* $OpenBSD: bppioctl.h,v 1.1 2002/01/12 20:19:40 jason Exp $ */
+
+/*
+ * Copyright (c) 1998 Iain Hibbert
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. The name Iain Hibbert may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY ``AS IS'' AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
+ * NO EVENT SHALL I BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * bppioctl.h
+ */
+
+#ifndef _IOCTL_
+#include <sys/ioctl.h>
+#endif
+
+struct bpp_param {
+ int bp_burst; /* chars to send/recv in one call */
+ int bp_timeout; /* timeout: -1 blocking, 0 non blocking >0 ms */
+ int bp_delay; /* delay between polls (ms) */
+};
+
+#define BPP_BLOCK -1
+#define BPP_NOBLOCK 0
+
+/* defaults */
+#define BPP_BURST 1024
+#define BPP_TIMEOUT BPP_BLOCK
+#define BPP_DELAY 10
+
+/* limits */
+#define BPP_BURST_MIN 1
+#define BPP_BURST_MAX 1024
+#define BPP_DELAY_MIN 0
+#define BPP_DELAY_MAX 30000
+
+/* status bits */
+#define BPP_BUSY (1<<0)
+#define BPP_PAPER (1<<1)
+
+/* ioctl commands */
+#define BPPIOCSPARAM _IOW('P', 0x1, struct bpp_param)
+#define BPPIOCGPARAM _IOR('P', 0x2, struct bpp_param)
+#define BPPIOCGSTAT _IOR('P', 0x4, int)
diff --git a/sys/arch/sparc64/include/conf.h b/sys/arch/sparc64/include/conf.h
index b0c50871568..e1c75c7d628 100644
--- a/sys/arch/sparc64/include/conf.h
+++ b/sys/arch/sparc64/include/conf.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: conf.h,v 1.7 2002/01/04 16:00:34 jason Exp $ */
+/* $OpenBSD: conf.h,v 1.8 2002/01/12 20:19:40 jason Exp $ */
/* $NetBSD: conf.h,v 1.9 2001/03/26 12:33:26 lukem Exp $ */
/*-
@@ -54,6 +54,11 @@ cdev_decl(openprom);
(dev_type_stop((*))) nullop, 0, (dev_type_select((*))) enodev, \
(dev_type_mmap((*))) enodev }
+#define cdev_gen_init(c,n) { \
+ dev_init(c,n,open), dev_init(c,n,close), dev_init(c,n,read), \
+ dev_init(c,n,write), dev_init(c,n,ioctl), (dev_type_stop((*))) nullop, \
+ 0, dev_init(c,n,select), (dev_type_mmap((*))) enodev }
+
cdev_decl(cn);
cdev_decl(zs);
@@ -105,3 +110,6 @@ cdev_decl(ulpt);
cdev_decl(urio);
cdev_decl(ucom);
cdev_decl(uscanner);
+
+cdev_decl(mtty);
+cdev_decl(mbpp);
diff --git a/sys/arch/sparc64/sparc64/conf.c b/sys/arch/sparc64/sparc64/conf.c
index 30fe8856d4e..efb3ba01a2c 100644
--- a/sys/arch/sparc64/sparc64/conf.c
+++ b/sys/arch/sparc64/sparc64/conf.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: conf.c,v 1.19 2002/01/04 16:00:34 jason Exp $ */
+/* $OpenBSD: conf.c,v 1.20 2002/01/12 20:19:40 jason Exp $ */
/* $NetBSD: conf.c,v 1.17 2001/03/26 12:33:26 lukem Exp $ */
/*
@@ -89,10 +89,10 @@
#include "com.h"
#ifdef notyet
#include "bpp.h"
-#include "magma.h" /* has NMTTY and NMBPP */
+#else
+#define NBPP 0
#endif
-#define NBPP 0
-#define NMAGMA 0
+#include "magma.h" /* has NMTTY and NMBPP */
#ifdef notyet
#include "fdc.h" /* has NFDC and NFD; see files.sparc */
@@ -236,8 +236,8 @@ struct cdevsw cdevsw[] =
cdev_notdef(), /* 68 */
cdev_audio_init(NAUDIO,audio), /* 69: /dev/audio */
cdev_openprom_init(1,openprom), /* 70: /dev/openprom */
- cdev_notdef(), /* 71 */
- cdev_notdef(), /* 72 */
+ cdev_tty_init(NMTTY,mtty), /* 71: magma serial ports */
+ cdev_gen_init(NMBPP,mbpp), /* 72: magma parallel ports */
cdev_pf_init(NPF,pf), /* 73: packet filter */
cdev_altq_init(NALTQ,altq), /* 74: ALTQ control interface */
cdev_crypto_init(NCRYPTO,crypto), /* 75: /dev/crypto */