diff options
author | Jason Wright <jason@cvs.openbsd.org> | 2002-01-12 20:19:41 +0000 |
---|---|---|
committer | Jason Wright <jason@cvs.openbsd.org> | 2002-01-12 20:19:41 +0000 |
commit | 43f0012410fc640505993d4ab1f1106e5549be58 (patch) | |
tree | 576881edebcf82719c30a8f3b2dfc9fb753d51a7 /sys/arch/sparc64 | |
parent | 94cdeb85bc020ba91349f66da51fe312faa10dd1 (diff) |
Port of Iain Hibbert's magma driver to sparc64
Diffstat (limited to 'sys/arch/sparc64')
-rw-r--r-- | sys/arch/sparc64/conf/GENERIC | 7 | ||||
-rw-r--r-- | sys/arch/sparc64/include/bppioctl.h | 63 | ||||
-rw-r--r-- | sys/arch/sparc64/include/conf.h | 10 | ||||
-rw-r--r-- | sys/arch/sparc64/sparc64/conf.c | 12 |
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 */ |