kernel/x86_64: Separate some i386 only drivers better.
authorSascha Wildner <saw@online.de>
Sat, 30 Apr 2011 12:30:17 +0000 (14:30 +0200)
committerSascha Wildner <saw@online.de>
Sat, 30 Apr 2011 12:38:32 +0000 (14:38 +0200)
The following drivers are listed in sys/platform/pc32/conf/files only,
so remove anything that has to do with them from x86_64.

asc ctx cy dgb el gp gsc labpc le rc rdp spigot stl stli tw wt

17 files changed:
Makefile_upgrade.inc
share/man/man4/Makefile
share/man/man4/man4.i386/Makefile
share/man/man4/man4.i386/rc.4 [moved from share/man/man4/rc.4 with 97% similarity]
share/man/man4/man4.i386/stl.4 [moved from usr.sbin/stallion/bootcode/stl.4 with 99% similarity]
sys/bus/isa/x86_64/isa.c
sys/bus/isa/x86_64/isa_compat.c [deleted file]
sys/bus/isa/x86_64/isa_compat.h [deleted file]
sys/conf/files
sys/platform/pc32/conf/files
sys/platform/pc64/conf/files
sys/platform/pc64/include/gsc.h [deleted file]
sys/platform/pc64/isa/README.le [deleted file]
sys/platform/pc64/isa/README.stl [deleted file]
sys/platform/pc64/isa/asc.c [deleted file]
usr.sbin/Makefile
usr.sbin/stallion/bootcode/Makefile

index 6bc966c..0e93adf 100644 (file)
@@ -1575,6 +1575,33 @@ TO_REMOVE+=/usr/share/man/man3/STAILQ_REMOVE_NEXT.3.gz
 TO_REMOVE+=/usr/bin/gasp
 TO_REMOVE+=/usr/share/man/cat9/memoryallocators.9.gz
 TO_REMOVE+=/usr/share/man/man9/memoryallocators.9.gz
+TO_REMOVE+=/usr/share/man/cat4/rc.4.gz
+TO_REMOVE+=/usr/share/man/man4/rc.4.gz
+
+.if ${MACHINE_ARCH} == "x86_64"
+TO_REMOVE+=/usr/sbin/sgsc
+TO_REMOVE+=/usr/share/man/cat1/sgsc.1.gz
+TO_REMOVE+=/usr/share/man/man1/sgsc.1.gz
+TO_REMOVE+=/usr/include/machine/gsc.h
+TO_REMOVE+=/usr/sbin/xten
+TO_REMOVE+=/usr/share/man/cat1/xten.1.gz
+TO_REMOVE+=/usr/share/man/man1/xten.1.gz
+TO_REMOVE+=/usr/libdata/stallion/2681.sys
+TO_REMOVE+=/usr/libdata/stallion/cdk.sys
+TO_REMOVE+=/usr/sbin/stlload
+TO_REMOVE+=/usr/share/man/cat8/i386/stlload.8.gz
+TO_REMOVE+=/usr/share/man/man8/i386/stlload.8.gz
+TO_REMOVE+=/usr/sbin/stlstats
+TO_REMOVE+=/usr/share/man/cat8/i386/stlstats.8.gz
+TO_REMOVE+=/usr/share/man/man8/i386/stlstats.8.gz
+TO_REMOVE+=/usr/sbin/stlstty
+TO_REMOVE+=/usr/share/man/cat8/i386/stlstty.8.gz
+TO_REMOVE+=/usr/share/man/man8/i386/stlstty.8.gz
+TO_REMOVE+=/usr/share/man/cat4/i386/stl.4.gz
+TO_REMOVE+=/usr/share/man/man4/i386/stl.4.gz
+TO_REMOVE+=/usr/share/man/cat4/i386/stli.4.gz
+TO_REMOVE+=/usr/share/man/man4/i386/stli.4.gz
+.endif
 
 # XXX Remove when pfsync(4) has been fixed
 TO_REMOVE+=/usr/share/man/cat4/pfsync.4.gz
index 9fcc32c..288113c 100644 (file)
@@ -227,7 +227,6 @@ MAN=        aac.4 \
        puc.4 \
        ral.4 \
        random.4 \
-       rc.4 \
        re.4 \
        rl.4 \
        rndtest.4 \
index 1afab91..a78ed9b 100644 (file)
@@ -6,15 +6,16 @@ MAN=  aic.4 apm.4 ar.4 asc.4 asr.4 \
        ie.4 io.4 labpc.4 le.4 linux.4 lnc.4 longrun.4 \
        mse.4 npx.4 \
        pcf.4 perfmon.4 pnp.4 pnpbios.4 \
-       rdp.4 sb.4 sbni.4 \
-       spkr.4 sr.4 tw.4 \
+       rc.4 rdp.4 sb.4 sbni.4 \
+       spkr.4 sr.4 stl.4 tw.4 \
        tx.4 viapm.4 vx.4 \
        wl.4 wt.4
 
 # XXX re-add when adjusted to the new 802.11 framework
 #MAN+= ndis.4 \
 
-MLINKS=        spkr.4 speaker.4
+MLINKS=        spkr.4 speaker.4 \
+       stl.4 stli.4
 
 MANSUBDIR=/i386
 
similarity index 97%
rename from share/man/man4/rc.4
rename to share/man/man4/man4.i386/rc.4
index f854401..28688f4 100644 (file)
@@ -24,7 +24,6 @@
 .\" SUCH DAMAGE.
 .\"
 .\" $FreeBSD: src/share/man/man4/rc.4,v 1.5 2005/03/18 02:38:03 brueffer Exp $
-.\" $DragonFly: src/share/man/man4/rc.4,v 1.1 2006/04/30 18:46:39 swildner Exp $
 .\"
 .Dd March 18, 2005
 .Dt RC 4
similarity index 99%
rename from usr.sbin/stallion/bootcode/stl.4
rename to share/man/man4/man4.i386/stl.4
index ea197ad..4b26d93 100644 (file)
@@ -29,7 +29,6 @@
 .\" SUCH DAMAGE.
 .\"
 .\" $FreeBSD: src/usr.sbin/stallion/bootcode/stl.4,v 1.8.2.5 2001/12/14 16:41:52 ru Exp $
-.\" $DragonFly: src/usr.sbin/stallion/bootcode/stl.4,v 1.9 2007/11/21 19:12:41 swildner Exp $
 .\"
 .Dd August 6, 2009
 .Os
index 9a7c088..f752efb 100644 (file)
 #include "../isavar.h"
 #include "../isa_common.h"
 
-#include "opt_compat_oldisa.h"
-
 void
 isa_init(void)
 {
-#ifdef COMPAT_OLDISA
-       isa_wrap_old_drivers();
-#endif
 }
 
 /*
diff --git a/sys/bus/isa/x86_64/isa_compat.c b/sys/bus/isa/x86_64/isa_compat.c
deleted file mode 100644 (file)
index b3542e8..0000000
+++ /dev/null
@@ -1,298 +0,0 @@
-/*-
- * Copyright (c) 1998 Doug Rabson
- * 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.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``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 THE AUTHOR OR CONTRIBUTORS 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.
- *
- * $FreeBSD: src/sys/i386/isa/isa_compat.c,v 1.18.2.1 2001/05/17 23:05:06 imp Exp $
- */
-
-#include <sys/param.h>
-#include <sys/systm.h>
-#include <sys/kernel.h>
-#include <sys/bus.h>
-#include <sys/malloc.h>
-#include <sys/module.h>
-#include <sys/rman.h>
-
-#include <machine/vmparam.h>
-#include <vm/vm.h>
-#include <vm/pmap.h>
-#include <machine/pmap.h>
-#include <machine/md_var.h>
-
-#include "../isavar.h"
-#include "isa_compat.h"
-#include "isa_device.h"
-
-struct isa_compat_resources {
-    struct resource *ports;
-    struct resource *memory;
-    struct resource *drq;
-    struct resource *irq;
-};
-
-struct isa_compat_driver {
-       driver_t driver;
-       struct old_isa_driver *op;
-};
-
-int
-isa_compat_nextid(void)
-{
-       static int id = 2;      /* id_id of -1, 0 and 1 are "used" */
-
-       return id++;
-}
-
-static void
-isa_compat_alloc_resources(device_t dev, struct isa_compat_resources *res)
-{
-       int rid;
-       u_long start, count;
-
-       if (bus_get_resource(dev, SYS_RES_IOPORT, 0,
-                            &start, &count) == 0) {
-               rid = 0;
-               res->ports = bus_alloc_resource(dev, SYS_RES_IOPORT,
-                                               &rid, 0ul, ~0ul, 1,
-                                               RF_ACTIVE);
-               if (res->ports == NULL && bootverbose)
-                       kprintf("isa_compat: didn't get ports for %s\n",
-                              device_get_name(dev));
-       } else
-               res->ports = 0;
-
-       if (bus_get_resource(dev, SYS_RES_MEMORY, 0,
-                            &start, &count) == 0
-           && start != 0) {
-               rid = 0;
-               res->memory = bus_alloc_resource(dev, SYS_RES_MEMORY,
-                                                &rid, 0ul, ~0ul, 1,
-                                                RF_ACTIVE);
-               if (res->memory == NULL && bootverbose)
-                       kprintf("isa_compat: didn't get memory for %s\n",
-                              device_get_name(dev));
-       } else
-               res->memory = 0;
-
-       if (bus_get_resource(dev, SYS_RES_DRQ, 0,
-                            &start, &count) == 0) {
-               rid = 0;
-               res->drq = bus_alloc_resource(dev, SYS_RES_DRQ,
-                                             &rid, 0ul, ~0ul, 1,
-                                             RF_ACTIVE);
-               if (res->drq == NULL && bootverbose)
-                       kprintf("isa_compat: didn't get drq for %s\n",
-                              device_get_name(dev));
-       } else
-               res->drq = 0;
-
-       if (bus_get_resource(dev, SYS_RES_IRQ, 0,
-                            &start, &count) == 0) {
-               rid = 0;
-               res->irq = bus_alloc_resource(dev, SYS_RES_IRQ,
-                                             &rid, 0ul, ~0ul, 1,
-                                             RF_SHAREABLE | RF_ACTIVE);
-               if (res->irq == NULL && bootverbose)
-                       kprintf("isa_compat: didn't get irq for %s\n",
-                              device_get_name(dev));
-       } else
-               res->irq = 0;
-}
-
-static void
-isa_compat_release_resources(device_t dev, struct isa_compat_resources *res)
-{
-       if (res->ports) {
-               bus_release_resource(dev, SYS_RES_IOPORT, 0, res->ports);
-               res->ports = 0;
-       }
-       if (res->memory) {
-               bus_release_resource(dev, SYS_RES_MEMORY, 0, res->memory);
-               res->memory = 0;
-       }
-       if (res->drq) {
-               bus_release_resource(dev, SYS_RES_DRQ, 0, res->drq);
-               res->drq = 0;
-       }
-       if (res->irq) {
-               bus_release_resource(dev, SYS_RES_IRQ, 0, res->irq);
-               res->irq = 0;
-       }
-}
-
-#define        irqmask(x)      ((x) < 0 ? 0 : (1 << (x)))
-
-static int
-isa_compat_probe(device_t dev)
-{
-       struct isa_device *dvp = device_get_softc(dev);
-       struct isa_compat_resources res;
-       struct old_isa_driver *op;
-       u_long start, count;
-
-       /* No pnp support */
-       if (isa_get_vendorid(dev))
-               return (ENXIO);
-
-       bzero(&res, sizeof(res));
-       /*
-        * Fill in the isa_device fields.
-        */
-       op = ((struct isa_compat_driver *)device_get_driver(dev))->op;
-       dvp->id_id = isa_compat_nextid();
-       dvp->id_driver = op->driver;
-       if (bus_get_resource(dev, SYS_RES_IOPORT, 0,
-                            &start, &count) == 0)
-               dvp->id_iobase = start;
-       else
-               dvp->id_iobase = -1;
-       if (bus_get_resource(dev, SYS_RES_IRQ, 0,
-                            &start, &count) == 0)
-               dvp->id_irq = irqmask(start);
-       else
-               dvp->id_irq = 0;
-       if (bus_get_resource(dev, SYS_RES_DRQ, 0,
-                            &start, &count) == 0)
-               dvp->id_drq = start;
-       else
-               dvp->id_drq = -1;
-       if (bus_get_resource(dev, SYS_RES_MEMORY,
-                            0, &start, &count) == 0) {
-               dvp->id_maddr = (void *)(uintptr_t)start;
-               dvp->id_msize = count;
-       } else {
-               dvp->id_maddr = NULL;
-               dvp->id_msize = 0;
-       }
-       dvp->id_unit = device_get_unit(dev);
-       dvp->id_flags = device_get_flags(dev);
-       dvp->id_enabled = device_is_enabled(dev);       /* XXX unused */
-       dvp->id_device = dev;
-
-       /*
-        * Do the wrapped probe.
-        */
-       if (dvp->id_driver->probe) {
-               int portsize;
-               void *maddr;
-               struct isa_device old;
-
-               isa_compat_alloc_resources(dev, &res);
-               if (res.memory)
-                       maddr = rman_get_virtual(res.memory);
-               else
-                       maddr = 0;
-               dvp->id_maddr = maddr;
-               old = *dvp;
-               portsize = dvp->id_driver->probe(dvp);
-               isa_compat_release_resources(dev, &res);
-               if (portsize != 0) {
-                       if (portsize > 0 || dvp->id_iobase != old.id_iobase)
-                               bus_set_resource(dev, SYS_RES_IOPORT,
-                                                0, dvp->id_iobase, portsize);
-                       if (dvp->id_irq != old.id_irq)
-                               bus_set_resource(dev, SYS_RES_IRQ, 0,
-                                                ffs(dvp->id_irq) - 1, 1);
-                       if (dvp->id_drq != old.id_drq)
-                               bus_set_resource(dev, SYS_RES_DRQ, 0,
-                                                dvp->id_drq, 1);
-                       if (dvp->id_maddr != old.id_maddr
-                           || dvp->id_msize != old.id_msize) {
-                               maddr = dvp->id_maddr;
-                               if (maddr != NULL)
-                                       bus_set_resource(dev,
-                                                        SYS_RES_MEMORY,
-                                                        0,
-                                                        kvtop(maddr),
-                                                        dvp->id_msize);
-                               else
-                                       bus_delete_resource(dev,
-                                                           SYS_RES_MEMORY,
-                                                           0);
-                       }
-                       return 0;
-               }
-       }
-       return ENXIO;
-}
-
-static int
-isa_compat_attach(device_t dev)
-{
-       struct isa_device *dvp = device_get_softc(dev);
-       struct isa_compat_resources res;
-       int error;
-
-       bzero(&res, sizeof(res));
-       isa_compat_alloc_resources(dev, &res);
-       if (dvp->id_driver->attach)
-               dvp->id_driver->attach(dvp);
-       if (res.irq && dvp->id_irq && dvp->id_intr) {
-               struct old_isa_driver *op;
-               void *ih;
-
-               op = ((struct isa_compat_driver *)device_get_driver(dev))->op;
-               error = BUS_SETUP_INTR(device_get_parent(dev), dev,
-                                      res.irq, op->type,
-                                      dvp->id_intr,
-                                      (void *)(uintptr_t)dvp->id_unit,
-                                      &ih, NULL);
-               if (error)
-                       kprintf("isa_compat_attach: failed to setup intr: %d\n",
-                              error);
-       }
-       device_printf(dev, "driver is using old-style compatibility shims\n");
-       return 0;
-}
-
-static device_method_t isa_compat_methods[] = {
-       /* Device interface */
-       DEVMETHOD(device_probe,         isa_compat_probe),
-       DEVMETHOD(device_attach,        isa_compat_attach),
-
-       { 0, 0 }
-};
-
-/*
- * Create a new style driver around each old isa driver.
- */
-void
-isa_wrap_old_drivers(void)
-{
-       int i;
-       struct old_isa_driver *op;
-       devclass_t isa_devclass = devclass_find("isa");
-       struct isa_compat_driver *driver;
-
-       for (i = 0, op = &old_drivers[0]; i < old_drivers_count; i++, op++) {
-               driver = kmalloc(sizeof(struct isa_compat_driver), M_DEVBUF, M_WAITOK | M_ZERO);
-               driver->driver.name = op->driver->name;
-               driver->driver.methods = isa_compat_methods;
-               driver->driver.size = sizeof(struct isa_device);
-               driver->op = op;
-               if (op->driver->sensitive_hw)
-                       resource_set_int(op->driver->name, -1, "sensitive", 1);
-               devclass_add_driver(isa_devclass, (driver_t *)driver);
-       }
-}
diff --git a/sys/bus/isa/x86_64/isa_compat.h b/sys/bus/isa/x86_64/isa_compat.h
deleted file mode 100644 (file)
index 3e9ad5d..0000000
+++ /dev/null
@@ -1,141 +0,0 @@
-/*-
- * Copyright (c) 1998 Doug Rabson
- * 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.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``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 THE AUTHOR OR CONTRIBUTORS 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.
- *
- * $FreeBSD: src/sys/i386/isa/isa_compat.h,v 1.27.2.11 2002/10/05 18:31:48 scottl Exp $
- */
-
-#include "use_el.h"
-#include "use_le.h"
-#include "use_rdp.h"
-#include "use_wt.h"
-#include "use_ctx.h"
-#include "use_spigot.h"
-#include "use_gp.h"
-#include "use_gsc.h"
-#include "use_cy.h"
-#include "use_dgb.h"
-#include "use_labpc.h"
-#include "use_rc.h"
-#include "use_tw.h"
-#include "use_asc.h"
-#include "use_stl.h"
-#include "use_stli.h"
-
-struct old_isa_driver {
-       int                     type;
-       struct isa_driver       *driver;
-};
-
-extern struct isa_driver  eldriver;
-extern struct isa_driver  ledriver;
-extern struct isa_driver rdpdriver;
-extern struct isa_driver  wtdriver;
-extern struct isa_driver ctxdriver;
-extern struct isa_driver spigotdriver;
-extern struct isa_driver  gpdriver;
-extern struct isa_driver gscdriver;
-extern struct isa_driver  cydriver;
-extern struct isa_driver dgbdriver;
-extern struct isa_driver labpcdriver;
-extern struct isa_driver  rcdriver;
-extern struct isa_driver  twdriver;
-extern struct isa_driver ascdriver;
-extern struct isa_driver stldriver;
-extern struct isa_driver stlidriver;
-
-
-static struct old_isa_driver old_drivers[] = {
-
-/* Sensitive TTY */
-
-/* Sensitive BIO */
-
-/* Sensitive NET */
-#if NRDP > 0
-       { 0, &rdpdriver },
-#endif
-
-/* Sensitive CAM */
-
-/* TTY */
-
-#if NGP > 0
-       { 0, &gpdriver },
-#endif
-#if NGSC > 0
-       { 0, &gscdriver },
-#endif
-#if NCY > 0
-       { 0, &cydriver },
-#endif
-#if NDGB > 0
-       { 0, &dgbdriver },
-#endif
-#if NLABPC > 0
-       { 0, &labpcdriver },
-#endif
-#if NRC > 0
-       { 0, &rcdriver },
-#endif
-#if NTW > 0
-       { 0, &twdriver },
-#endif
-#if NASC > 0
-       { 0, &ascdriver },
-#endif
-#if NSTL > 0
-       { 0, &stldriver },
-#endif
-#if NSTLI > 0
-       { 0, &stlidriver },
-#endif
-
-/* BIO */
-
-#if NWT > 0
-       { 0, &wtdriver },
-#endif
-
-/* NET */
-
-#if NLE > 0
-       { 0, &ledriver },
-#endif
-#if NEL > 0
-       { 0, &eldriver },
-#endif
-
-/* MISC */
-
-#if NCTX > 0
-       { 0, &ctxdriver },
-#endif
-#if NSPIGOT > 0
-       { 0, &spigotdriver },
-#endif
-
-};
-
-#define old_drivers_count NELEM(old_drivers)
index 802271c..c964efd 100644 (file)
@@ -1608,7 +1608,6 @@ dev/video/cxm/cxm_ir.c            optional cxm pci
 dev/video/cxm/cxm_msp34xxx.c   optional cxm pci
 dev/video/cxm/cxm_saa7115.c    optional cxm pci
 dev/video/cxm/cxm_tuner.c      optional cxm pci
-dev/serial/cy/cy_pci.c         optional cy pci
 dev/netif/dc/if_dc.c           optional dc
 dev/netif/de/if_de.c           optional de
 dev/netif/en_pci/if_en_pci.c   optional en pci
index 88d04fe..c009659 100644 (file)
@@ -227,6 +227,7 @@ platform/pc32/isa/asc.c                     optional        asc
 platform/pc32/isa/clock.c              standard nowerror
 dev/video/ctx/ctx.c                    optional        ctx
 dev/serial/cy/cy.c                     optional        cy
+dev/serial/cy/cy_pci.c                 optional        cy pci
 dev/netif/elink_layer/elink.c          optional        ep
 dev/netif/elink_layer/elink.c          optional        ie
 dev/disk/fd/fd.c                       optional        fd
index 627379d..62a0dfc 100644 (file)
@@ -173,7 +173,6 @@ platform/pc64/apic/ioapic_ipl.s             optional        smp
 platform/pc64/apic/apic_vector.s       optional        smp
 
 bus/isa/x86_64/isa.c                   optional        isa
-bus/isa/x86_64/isa_compat.c            optional        isa compat_oldisa
 bus/isa/x86_64/isa_dma.c                       optional        isa
 
 platform/pc64/x86_64/nexus.c           standard
diff --git a/sys/platform/pc64/include/gsc.h b/sys/platform/pc64/include/gsc.h
deleted file mode 100644 (file)
index f00bbfa..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-/* gsc.h - programming interface to the scanner device driver `gsc'
- *
- *
- * Copyright (c) 1995 Gunther Schadow.  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. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *     This product includes software developed by Gunther Schadow.
- * 4. The name of the author may not be used to endorse or promote products
- *    derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 THE AUTHOR 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.
- *
- * $FreeBSD: src/sys/i386/include/gsc.h,v 1.2.10.1 2000/08/03 01:01:19 peter Exp $
- * $DragonFly: src/sys/platform/pc32/include/gsc.h,v 1.2 2003/06/17 04:28:35 dillon Exp $
- */
-
-#ifndef        _MACHINE_GSC_H_
-#define        _MACHINE_GSC_H_
-
-#include <sys/ioccom.h>
-
-#define GSC_GRES       _IOR('S', 1, int)       /* get resolution / dpi */
-#define GSC_SRES       _IOW('S', 2, int)       /* set resolution / dpi */
-#define GSC_GWIDTH     _IOR('S', 3, int)       /* get width / pixels */
-#define        GSC_SWIDTH      _IOW('S', 4, int)       /* set width / pixels */
-#define GSC_GHEIGHT    _IOR('S', 5, int)       /* get height / pixels */
-#define GSC_SHEIGHT    _IOW('S', 6, int)       /* set height / pixels */
-
-#define GSC_GBLEN      _IOR('S', 7, int)       /* get buffer length / lines */
-#define GSC_SBLEN      _IOW('S', 8, int)       /* set buffer length / lines */
-#define GSC_GBTIME     _IOR('S', 9, int)       /* get buffer timeout / s */
-#define GSC_SBTIME     _IOW('S', 10, int)      /* set buffer timeout / s */
-
-#define GSC_SRESSW     _IO('S', 11)            /* set resolution by switch */
-
-#endif /* !_MACHINE_GSC_H_ */
diff --git a/sys/platform/pc64/isa/README.le b/sys/platform/pc64/isa/README.le
deleted file mode 100644 (file)
index 95d664b..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-$FreeBSD: src/sys/i386/isa/README.le,v 1.6 1999/08/28 00:44:35 peter Exp $
-$DragonFly: src/sys/platform/pc64/isa/README.le,v 1.1 2008/08/29 17:07:19 dillon Exp $
-
-----------------
-
-This driver is in no way supported by Digital Equipment.  See the
-disclaimers in the sources for more.
-
-This driver supports all the DEC EtherWORKS III NICs (DE203, DE204,
-and DE205) and the later DEC EtherWORKS II NICs (DE200, DE201, DE202,
-DE422).  DEPCA-style boards prior to the DE200 have not been tested
-and may not work.  
-
-This driver is not EISA aware.  If you are using a DE422 or have
-configured the EtherWORKS III in EISA mode, make sure you specify
-the I/O port properly as this driver will *not* probe for it.
-(The I/O port should be 0xNc00 where N is the EISA slot number).
-
-This driver does not yet use the full 128KB allowed by the DE422.
-Someday, it might. For EtherWORKS III NICs, the driver will override
-the EEPROM setting of MemoryMode and *always* use the 2K for best
-results.
-
-The driver includes full support for both BPF and IP Multicast.
-
-[All paths are relative to the top of sys source area, usually
-/usr/src/sys.]
-
-The following files need to be moved into their respective
-directories:
-
-       if_le.c    -->  i386/isa
-       am7990.h   -->  i386/isa/ic
-       lemac.h    -->  i386/isa/ic
-
-You will need to apply the patch provided in pat.files.i386 to
-i386/conf/files.i386 file.
-
-After that is done you will need to edit your config file (in
-i386/conf) and a line similar to:
-
-device le0 at isa? port 0x300 net irq 5 iomem 0xd0000
-
-[The above line assumes the board is still at the factory defaults.]
-Change the port, irq, and iomem value if needed to your configuration.
-
-Now you are ready to rebuild your kernel, reboot, and see if the
-driver can configure your board.  When the system boots, you will
-hopefully something close to:
-
-    EtherWORKS II:
-
-       le0 at 0x300-0x30f irq 5 maddr 0xd0000 msize 65536 on isa
-       le0: DE202 ethernet address 08:00:2b:2d:c8:45
-       bpf: le0 attached
-
-    EtherWORKS III:
-
-       le0 at 0x320-0x33f irq 5 maddr 0xd0000 msize 2048 on isa
-       le0: DE205-AB ethernet address 08:00:2b:bb:23:e0
-       le0 attached
-
-in the startup log.  If so, the board configured properly and
-should be ready to use.
-
---
-Mail:  thomas@lkg.dec.com
-URL:   http://ftp.digital.com/~thomas/
-
diff --git a/sys/platform/pc64/isa/README.stl b/sys/platform/pc64/isa/README.stl
deleted file mode 100644 (file)
index cded0f2..0000000
+++ /dev/null
@@ -1,530 +0,0 @@
-$FreeBSD: src/sys/i386/isa/README.stl,v 1.3.6.2 2001/08/30 12:29:57 murray Exp $
-$DragonFly: src/sys/platform/pc64/isa/README.stl,v 1.1 2008/08/29 17:07:19 dillon Exp $
-
-Stallion Multiport Serial Driver Readme
----------------------------------------
-
-Version: 2.0.0
-Date:    22JAN98
-Author:  Greg Ungerer (gerg@stallion.com)
-
-
-
-1. INTRODUCTION
-
-This is a set of FreeBSD drivers for most of the Stallion Technologies
-range of multiport serial boards.
-
-This driver has not been developed by Stallion Technologies. I developed it
-in my spare time in the hope that it would be useful. As such there is no
-warranty or support of any form. What this means is that this driver is not
-officially supported by Stallion Technologies, so don't ring their support
-if you can't get it working. They will probably not be able to help you.
-Instead email me if you have problems or bug reports and I will do what I
-can... (Sorry to sound so heavy handed, but I need to stress that this driver
-is not officially supported in any way.)
-
-This package actually contains two drivers. One is for the true Stallion
-intelligent multiport boards, and the other is for the smart range of boards.
-
-All host driver source is included in this package, and is copyrighted under
-a BSD style copyright. The board "firmware" code in this package is copyright
-Stallion Technologies (the files cdk.sys and 2681.sys).
-
-
-1.1 SMART MULTIPORT BOARD DRIVER
-
-This driver supports the EasyIO, EasyConnection 8/32 and EasyConnection
-8/64-PCI range of boards. These boards are not classic intelligent multiport
-boards, but are host based multiport boards that use Cirrus Logic CL-CD1400
-UART's, or on newer versions of the hardware use the Signetics 26C198 UART.
-Both of these are high performance UART's with built in FIFO's, automatic
-flow control and a host of other features.
-
-The EasyIO range of cards comes in 4 forms, the EasyIO-4, EasyIO-8,
-EasyIO-8M and EasyIO-8-PCI. The first three are ISA based boards while
-the last is a PCI bus board. All of these are non-expandable, low cost,
-multiport boards with 4 or 8 RS-232C ports. Each ISA EasyIO board requires 8
-bytes of I/O address space and 1 interrupt. The PCI EasyIO board uses 64
-bytes of I/O address space and 1 interrupt. On EISA and PCI systems it is
-possible to share 1 interrupt between multiple boards. The EasyIO-4 has 10
-pin RJ connectors, and the EasyIO-8 comes with a dongle cable with either 10
-pin RJ connectors or DB-25 connectors. The EasyIO-8M has 6 pin RJ connectors.
-
-The EasyConnection 8/32 family of boards is a relatively low cost modular
-range of multiport serial boards. The EasyConnection 8/32 boards can be
-configured to have from 8 to 32 serial ports by plugging in external serial
-port modules that contain either 8 or 16 ports each. There is a wide range
-of external modules available that offer: DB-25 connectors, RJ-45 connectors
-(both with RS-232 D and E compatible drivers), and also RS-422 and RS-485
-ports. The EasyConnection 8/32 boards come in ISA, PCI and MCA bus versions.
-The board takes the form of a host adapter card, with an external connector
-cable that plugs into the external modules. The external modules just clip
-together to add ports (BTW, they are NOT hot pluggable). Each ISA
-EasyConnection 8/32 board requires two separate I/O address ranges, one two
-bytes in size and a secondary region of 32 bytes. Each PCI EasyConnection
-8/32 requires two regions of I/O address space, normally these will be
-automatically allocated by the system BIOS at power on time. Each MCA
-EasyConnection board requires one I/O address region 64 bytes in size. All
-board types also require one interrupt. On EISA systems multiple boards can
-share one interrupt. The secondary I/O range of the ISA board (the 32 byte
-range) can be shared between multiple boards on any bus type.
-
-The EasyConnection 8/64-PCI family is similar to the EasyConnection 8/32-PCI
-board, and uses the same external modules. It is supported by the smart
-board driver - not the intelligent board driver. It uses 2 regions of I/O
-address space, both 64 bytes in size, and 1 interrupt.
-
-
-1.2 INTELLIGENT MULTIPORT BOARD DRIVER
-
-This driver is for Stallion's range of true intelligent multiport boards.
-It supports the EasyConnection 8/64, ONboard and Brumby families of multiport
-boards. The EasyConnection 8/64 and ONboard boards come in ISA, EISA and
-Microchannel bus versions. The Brumby boards are only available in ISA
-versions. This driver can also work with the original Stallion board, but
-these are no longer supported by Stallion Technologies.
-
-The EasyConnection 8/64 family of boards is a medium cost, high performance,
-modular range of intelligent multiport serial boards. The EasyConnection 8/64
-boards can be configured to have from 8 to 64 serial ports by plugging in
-external serial port modules that contain either 8 or 16 ports each (these
-modules are the same used by the EasyConnection 8/32 board). There is a wide
-range of external modules available that offer: DB-25 connectors, RJ-45
-connectors (both with RS-232 D and E compatible drivers), and also RS-422 and
-RS-485 ports. The board takes the form of a host adapter card, with an external
-connector cable that plugs into the external modules. The external modules
-just clip together to add ports (BTW, they are NOT hot pluggable). Each
-EasyConnection 8/64 board requires 4 bytes of I/O address space and a region
-of memory space. The size of the memory region required depends on the exact
-board type. The EISA version requires 64 Kbytes of address space (that can
-reside anywhere in the 4 Gigabyte physical address space). The ISA and MCA
-boards require 4 Kbytes of address space (which must reside in the lower
-1 Mbyte of physical address space - typically in the c8000 to e0000 range).
-No interrupts are required. The physical memory region of multiple
-EasyConnection 8/64 boards can be shared, but each board must have a separate
-I/O address.
-
-The ONboard family of boards are traditional intelligent multiport serial
-boards. They are Stallion's older range of boards with a limited expansion
-capability. They come in 4, 8, 12, 16 and 32 port versions. The board uses
-the same base card (which has 4 ports on it) and is expanded to more ports via
-a mezzanine board that attaches directly onto the base card. External panels
-plug into the ONboard providing RS-232C ports with DB-25 plugs. An RS-422
-DB-25 dual interface panel is also available. The ISA and microchannel
-ONboards require 16 bytes of I/O address space and 64K bytes of memory
-space. The memory space can be anywhere in the 16 Mbyte ISA bus address
-range. No interrupt is required. The EISA ONboard requires 64 Kbytes of
-memory space that can be anywhere in the 4 Gigabyte physical address space.
-All ONboard boards can share their memory region with other ONboards (or
-EasyConnection 8/64 boards).
-
-The Brumby family of boards are traditional, low cost intelligent multiport
-serial boards. They are non-expandable and come in 4, 8 and 16 port versions.
-They are only available for the ISA bus. The serial ports are all on DB-25
-"dongle" cables that attach to the rear of the board. Each Brumby board
-requires 16 bytes of I/O address space and 16 Kbytes of memory space. No
-interrupts are required.
-
-The original Stallion boards are old. They went out of production some years
-back and are no longer supported. They offer limited expandability and are
-available in 8 or 16 port configurations. An external panel houses 16 RS-232C
-ports with DB-9 connectors. They require 16 bytes of I/O address space, and
-either 64K or 128K of memory space. No interrupt is required.
-
-That's the boards supported by the second driver. The ONboard, Brumby and
-Stallion boards are Stallion's older range of intelligent multiports - so
-there are lots of them around. They only support a maximum baud rate of
-38400. The EasyConnection 8/64 is a true high performance intelligent
-multiport board, having much greater throughput than any of Stallion's
-older boards. It also supports speeds up to 460800 baud.
-
-
-1.3 HOW TO GET BOARDS
-
-Stallion Technologies has offices all over the world, as well as many more
-distributors and resellers. To find out about local availability please
-contact the nearest Stallion office and they can give you all the information
-you need. Look in the "Offices" file in the driver package for a current list
-of Stallion Technologies offices.
-
-Another good source of information about the Stallion range of boards and
-local availability is on the Stallion Web page. Check it out at
-http://www.stallion.com.
-
-
-
-2. INSTALLATION
-
-This driver, as is, will work on a FreeBSD 2.2.5 system. It will run on any
-FreeBSD system version 2.0.5 and up, including -current version systems.
-For systems other than 2.2.0 and 2.2.5  you will need to change the version
-define in the driver source. Look for the symbol name VFREEBSD, then change
-it to match the version number of your FreeBSD system (for example 2.2.5 is
-225, 3.0.0 would be 300, etc).
-
-Recent versions of FreeBSD 2.1.5 and above include the Stallion drivers
-in the distribution. You may still need to use this source for these systems.
-If the code in this package is newer than the version enclosed on your
-FreeBSD installation then you should use this source instead.
-
-You will need to build a new kernel to use this driver. So the first thing
-you need is to have the full kernel source. Most people will have this
-(I hope!). The following assumes that the kernel source is in /usr/src/sys.
-
-The drivers can support up to 8 boards. For the smart board driver any
-combination of EasyIO, EasyConnection 8/32 and EasyConnection 8/64-PCI
-boards can be installed. For the intelligent any combination of
-EasyConnection 8/64 (ISA and EISA), ONboard, Brumby or original Stallion.
-So there is a theoretical maximum of 512 ports.
-
-2.1 Instructions to install:
-
-1. Copy the driver source files into the kernel source tree.
-
-        cp stallion.c istallion.c /usr/src/sys/i386/isa
-        cp cdk.h comstats.h /usr/src/sys/i386/include
-        cp scd1400.h sc26198.h /usr/src/sys/i386/isa/ic
-
-   Note: if you are NOT using FreeBSD 2.2.5 then you will need to edit the
-   stallion.c and istallion.c files and change the VFREEBSD define to match
-   your version. This define is near the top of the file, and should be
-   easy to find.
-
-2. If you are using FreeBSD version 2.2.0 or above then jump to step 4 now.
-
-   Add a character device switch table entry for the driver that you wish
-   to use into the cdevsw table structure. This involves adding some code
-   into the kernel conf.c file. 
-
-   If you are using an EasyIO, EasyConnection 8/32 or EasyConnection 8/64-PCI
-   then you need to use the stallion.c driver. All other board types
-   (EasyConnection 8/64 (ISA and EISA), ONboard, Brumby, Stallion) use the
-   istallion.c driver. You can also have a mix of boards using both drivers.
-   You will need to use a different major device number for the second driver
-   though (not the default 72 - see below for more details on this).
-
-2.1. If using the stallion.c driver then do:
-
-        cd /usr/src/sys/i386/i386
-        vi conf.c
-            - add the following lines (in 2.1.0 I put them at line 729):
-
-/* Stallion Multiport Serial Driver */
-#include "use_stl.h"
-#if    NSTL > 0
-d_open_t        stlopen;
-d_close_t       stlclose;
-d_read_t        stlread;
-d_write_t       stlwrite;
-d_ioctl_t      stlioctl;
-d_stop_t        stlstop;
-d_ttycv_t      stldevtotty;
-#define stlreset       nxreset
-#define        stlmmap         nxmmap
-#define stlstrategy    nxstrategy
-#else
-#define        stlopen         nxopen
-#define stlclose       nxclose
-#define stlread                nxread
-#define stlwrite       nxwrite
-#define stlioctl       nxioctl
-#define stlstop                nxstop
-#define stlreset       nxreset
-#define stlmmap                nxmmap
-#define stlstrategy    nxstrategy
-#define        stldevtotty     nxdevtotty
-#endif
-
-
-            - and then inside the actual cdevsw structure definition, at the
-              last entry add (this is now line 1384 in the 2.1 conf.c):
-
-       { stlopen,      stlclose,       stlread,        stlwrite,       /*72*/
-         stlioctl,     stlstop,        stlreset,       stldevtotty,/*stallion*/
-         ttselect,     stlmmap,        stlstrategy },
-
-            - the line above used major number 72, but this may be different
-              on your system. Take note of what major number you are using.
-              
-            - save the file and exit vi.
-
-
-2.2. If using the istallion.c driver then do:
-
-        cd /usr/src/sys/i386/i386
-        vi conf.c
-            - add the following lines (in 2.1.0 I put them at line 729):
-
-/* Stallion Intelligent Multiport Serial Driver */
-#include "use_stl.h"
-#if    NSTL > 0
-d_open_t        stliopen;
-d_close_t       stliclose;
-d_read_t        stliread;
-d_write_t       stliwrite;
-d_ioctl_t      stliioctl;
-d_stop_t        stlistop;
-d_ttycv_t      stlidevtotty;
-#define stlireset      nxreset
-#define        stlimmap        nxmmap
-#define stlistrategy   nxstrategy
-#else
-#define        stliopen        nxopen
-#define stliclose      nxclose
-#define stliread       nxread
-#define stliwrite      nxwrite
-#define stliioctl      nxioctl
-#define stlistop       nxstop
-#define stlireset      nxreset
-#define stlimmap       nxmmap
-#define stlistrategy   nxstrategy
-#define        stlidevtotty    nxdevtotty
-#endif
-
-
-            - and then inside the actual cdevsw structure definition, at the
-              last entry add (this is now line 1384 in the 2.1 conf.c):
-
-       { stliopen,     stliclose,      stliread,     stliwrite,        /*72*/
-         stliioctl,    stlistop,       stlireset,    stlidevtotty,/*istallion*/
-         ttselect,     stlimmap,       stlistrategy },
-
-            - the line above used major number 72, but this may be different
-              on your system. Take note of what major number you are using.
-              
-            - save the file and exit vi.
-
-3. Add the driver source files to the kernel files list:
-
-        cd /usr/src/sys/i386/conf
-        vi files.i386
-            - add the following definition lines into the list (it is stored
-              alphabetically, so insert them appropriately):
-
-i386/isa/istallion.c           optional        stli    device-driver
-
-i386/isa/stallion.c            optional        stl     device-driver
-
-            - save the file and exit vi.
-
-4. Add board probe entries into the kernel configuration file:
-
-        cd /usr/src/sys/i386/conf
-        cp GENERIC MYKERNEL
-            - if you already have a kernel config that you use then you
-              could just use that (instead of MYKERNEL)
-        vi MYKERNEL
-            - if only using PCI boards then you don't need to enter a
-              configuration line, the kernel will automatically detect
-              the board at boot up, so skip to step 5.
-            - enter a line for each board that you want to use. For stallion.c
-              boards entries should look like:
-
-device         stl0    at isa? port 0x2a0 tty irq 10 vector stlintr
-
-              For istallion.c boards, the entries should look like:
-
-device         stli0   at isa? port 0x2a0 tty iomem 0xcc000 iosiz 0x1000 flags 23
-
-              (I suggest you put them after the sio entries)
-              (Don't enter lines for PCI boards)
-            - change the entry resources as required. For the stallion.c
-              entries this may involve changing the port address or irq.
-              For the istallion.c entries this may involve changing the port
-              address, iomem address, iosiz value and the flags. Select from
-              the following table for appropriate flags and iosiz values for
-              your board type:
-
-              EasyConnection 8/64 ISA:     flags 23         iosiz 0x1000
-              EasyConnection 8/64 EISA:    flags 24         iosiz 0x10000
-              EasyConnection 8/64 MCA:     flags 25         iosiz 0x1000
-              ONboard ISA:                 flags 4          iosiz 0x10000
-              ONboard EISA:                flags 7          iosiz 0x10000
-              ONboard MCA:                 flags 3          iosiz 0x10000
-              Brumby:                      flags 2          iosiz 0x4000
-              Stallion:                    flags 1          iosiz 0x10000
-
-            - save the file and exit
-            - more detailed information about board configuration and
-              some helpful examples are contained in the driver manual
-              pages.
-
-5. Build a new kernel using this configuration.
-
-        cd /usr/src/sys/i386/conf
-        config MYKERNEL
-        cd ../../compile/MYKERNEL
-        make depend
-        make all
-        make install
-
-
-And there you have it!
-
-Once you have a new kernel built reboot to start it up. On startup the
-Stallion board probes will report on whether the boards were found or not.
-For each board found the driver will print out the type of board found,
-and how many panels and ports it has. 
-
-If a board is not found by the driver but is actually in the system then the
-most likely problem is that the IO address is incorrect. The easiest thing to
-do is change the DIP switches on the board to the desired address and reboot.
-
-On EasyIO and EasyConnection 8/32 boards the IRQ is software programmable,
-so if there is a conflict you may need to change the IRQ used for a board in
-the MYKERNEL configuration file and rebuild the kernel.
-
-Note that the secondary IO address of the EasyConnection 8/32 boards is hard
-coded into the stallion.c driver code. It is currently set to IO address
-0x280. If you need to use a different address then you will need to edit this
-file and change the variable named stl_ioshared.
-
-On intelligent boards it is possible that the board shared memory region is
-clashing with that of some other device. Check for this and change the device
-or kernel configuration as required.
-
-
-2.2 INTELLIGENT DRIVER OPERATION
-
-The intelligent boards also need to have their "firmware" code downloaded
-to them. This is done via a user level application supplied in the driver
-package called "stlload". Compile this program where ever you dropped the
-package files, by typing "make". In its simplest form you can then type
-    ./stlload -i cdk.sys
-in this directory and that will download board 0 (assuming board 0 is an
-EasyConnection 8/64 board). To download to an ONboard, Brumby or Stallion do:
-    ./stlload -i 2681.sys
-
-Normally you would want all boards to be downloaded as part of the standard
-system startup. To achieve this, add one of the lines above into the
-/etc/rc.serial file. To download each board just add the "-b <brd-number>"
-option to the line. You will need to download code for every board. You should
-probably move the stlload program into a system directory, such as /usr/sbin.
-Also, the default location of the cdk.sys image file in the stlload
-down-loader is /usr/libdata/stallion. Create that directory and put the
-cdk.sys and 2681.sys files in it. (It's a convenient place to put them
-anyway). As an example your /etc/rc.serial file might have the following
-lines added to it (if you had 3 boards):
-    /usr/sbin/stlload -b 0 -i /usr/libdata/stallion/cdk.sys
-    /usr/sbin/stlload -b 1 -i /usr/libdata/stallion/2681.sys
-    /usr/sbin/stlload -b 2 -i /usr/libdata/stallion/2681.sys
-
-The image files cdk.sys and 2681.sys are specific to the board types. The
-cdk.sys will only function correctly on an EasyConnection 8/64 (ISA and EISA)
-board. Similarly the 2681.sys image will only operate on ONboard, Brumby and
-Stallion boards. If you load the wrong image file into a board it will fail
-to start up, and of course the ports will not be operational!
-
-
-
-3. USING THE DRIVER
-
-Once the driver is installed you will need to setup some device nodes to
-access the serial ports. Use the supplied "mkdevnods" script to automatically
-create all required device entries for your boards. To make device nodes for
-more than 1 board then just supply the number of boards you are using as a
-command line parameter to mkdevnods and it will create nodes for that number
-of boards. By default it will create device nodes for 1 board only.
-
-Note that if the driver is not installed at character major number 72 then
-you will need to edit the mkdevnods script and modify the STL_SERIALMAJOR
-variable to the major number you are using.
-
-Device nodes created for the normal serial port devices are named /dev/ttyEX
-where X is the port number. (The second boards ports will start from ttyE64,
-the third boards from ttyE128, etc). It will also create a set of modem call
-out devices named cueX where again X is the port number.
-
-For the most part the Stallion driver tries to emulate the standard PC system
-com ports and the standard sio serial driver. The idea is that you should
-be able to use Stallion board ports and com ports inter-changeably without
-modifying anything but the device name. Anything that doesn't work like that
-should be considered a bug in this driver!
-
-Since this driver tries to emulate the standard serial ports as much as
-possible then most system utilities should work as they do for the standard
-com ports. Most importantly "stty" works as expected and "comcontrol" can be
-used just like for the serial ports.
-
-This driver should work with anything that works on standard com serial ports.
-Having said that, I have used it on at least the following types of "things"
-under FreeBSD:
-    a) standard dumb terminals (using getty)
-    b) modems (using cu, etc)
-    c) ppp (through pppd, kernel ppp)
-
-
-
-4. NOTES
-
-Please email me any feedback on bugs, problems, or even good experiences
-with these drivers!
-
-You can use both drivers at once if you have a mix of board types installed
-in a system. On FreeBSD 2.1.5 and later systems each driver has been
-assigned a different major number. On earlier FreeBSD versions you may
-need to manually assign each driver a different major number. You will
-also need to adjust the names of the device nodes for each board. To do
-this modify the mkdevnods script to make device nodes based on those new
-major numbers. For example, you could change the istallion.c driver to use
-major number 75. You will also need to create device nodes with different
-names for the ports, for eg ttyFXXX.
-
-Currently the intelligent board driver (istallion.c) does not have the
-ability to share a boards memory region with other boards (you can only do
-this on EasyConnection 8/64 and ONboards normally anyway). It also does
-not currently support any memory address ranges above the low 1Mb region.
-These will be fixed in a future release of the driver.
-
-Finding a free physical memory address range can be a problem. The older
-boards like the Stallion and ONboard need large areas (64K or even 128K), so
-they can be very difficult to get into a system. If you have 16 Mb of RAM
-then you have no choice but to put them somewhere in the 640K -> 1Mb range.
-ONboards require 64K, so typically 0xd0000 is good, or 0xe0000 on some
-systems. If you have an original Stallion board, "V4.0" or Rev.O, then you
-need a 64K memory address space, so again 0xd0000 and 0xe0000 are good. Older
-Stallion boards are a much bigger problem. They need 128K of address space and
-must be on a 128K boundary. If you don't have a VGA card then 0xc0000 might be
-usable - there is really no other place you can put them below 1Mb.
-
-Both the ONboard and old Stallion boards can use higher memory addresses as
-well, but you must have less than 16Mb of RAM to be able to use them. Usual
-high memory addresses used include 0xec0000 and 0xf00000.
-
-The Brumby boards only require 16Kb of address space, so you can usually
-squeeze them in somewhere. Common addresses are 0xc8000, 0xcc000, or in
-the 0xd0000 range. EasyConnection 8/64 boards are even better, they only
-require 4Kb of address space, again usually 0xc8000, 0xcc000 or 0xd0000
-are good.
-
-If you are using an EasyConnection 8/64-EI or ONboard/E then usually the
-0xd0000 or 0xe0000 ranges are the best options below 1Mb. If neither of
-them can be used then the high memory support to use the really high address
-ranges is the best option. Typically the 2Gb range is convenient for them,
-and gets them well out of the way.
-
-The ports of the EasyIO-8M board do not have DCD or DTR signals. So these
-ports cannot be used as real modem devices. Generally when using these
-ports you should only use the cueX devices.
-
-There is a utility in this package that reports statistics on the serial
-ports. You will need to have the ncurses library installed on your system
-to build it.
-
-To build the statistics display program type:
-    make stlstats
-Once compiled simply run it (you will need to be root) and it will display
-a port summary for the first board and panel installed. Use the digits to
-select different board numbers, or 'n' to cycle through the panels on a
-board. To look at detailed port information then hit 'p', that will display
-detailed port 0 information. Use the digits and letters 'a' through 'f' to
-select the different ports (on this board and panel).
-
-
-
-5. ACKNOWLEDGEMENTS
-
-This driver is loosely based on the code of the FreeBSD sio serial driver.
-A big thanks to Stallion Technologies for the use of their equipment.
-
diff --git a/sys/platform/pc64/isa/asc.c b/sys/platform/pc64/isa/asc.c
deleted file mode 100644 (file)
index 48a7524..0000000
+++ /dev/null
@@ -1,897 +0,0 @@
-/* asc.c - device driver for hand scanners
- *
- * Current version supports:
- *
- *     - AmiScan (Mustek) Color and BW hand scanners (GI1904 chipset)
- *
- * Copyright (c) 1995 Gunther Schadow.  All rights reserved.
- * Copyright (c) 1995,1996,1997 Luigi Rizzo.  All rights reserved.
- * Copyright (c) 2008 The DragonFly Project.
- *
- * 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. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *     This product includes software developed by Gunther Schadow
- *     and Luigi Rizzo.
- * 4. The name of the author may not be used to endorse or promote products
- *    derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 THE AUTHOR 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.
- */
-/*
- * $FreeBSD: src/sys/i386/isa/asc.c,v 1.42.2.2 2001/03/01 03:22:39 jlemon Exp $
- */
-
-#include "use_asc.h"
-#include <sys/param.h>
-#include <sys/systm.h>
-#include <sys/conf.h>
-#include <sys/proc.h>
-#include <sys/buf.h>
-#include <sys/malloc.h>
-#include <sys/kernel.h>
-#include <sys/event.h>
-#include <sys/uio.h>
-#include <sys/thread2.h>
-
-#include <machine/asc_ioctl.h>
-
-#include <bus/isa/isa.h>
-#include <bus/isa/isa_device.h>
-#include "ascreg.h"
-
-/***
- *** CONSTANTS & DEFINES
- ***
- ***/
-
-#define PROBE_FAIL    0
-#define PROBE_SUCCESS IO_ASCSIZE
-#define ATTACH_FAIL   0
-#define ATTACH_SUCCESS 1
-#define SUCCESS       0
-#define FAIL         -1
-#define INVALID       FAIL
-
-#define DMA1_READY  0x08
-#define ASCDEBUG
-#ifdef ASCDEBUG
-#      define lprintf if(scu->flags & FLAG_DEBUG) kprintf
-#else
-#      define lprintf (void)
-#endif
-
-#define TIMEOUT (hz*15)  /* timeout while reading a buffer - default value */
-
-/***
- *** LAYOUT OF THE MINOR NUMBER
- ***/
-
-#define UNIT_MASK 0xc0    /* unit asc0 .. asc3 */
-#define UNIT(x)   (x >> 6)
-#define DBUG_MASK 0x20
-#define FRMT_MASK 0x18    /* output format */
-#define FRMT_RAW  0x00    /* output bits as read from scanner */
-#define FRMT_GRAY 0x1     /* output gray mode for color scanner */
-#define FRMT_PBM  0x08    /* output pbm format */
-#define FRMT_PGM  0x18
-
-/***
- *** THE GEMOMETRY TABLE
- ***/
-
-#define GREY_LINE 826 /* 825, or 826 , or 550 ??? */
-static const struct asc_geom {
-  int dpi;     /* dots per inch */
-  int dpl;     /* dots per line */
-  int bpl;     /* bytes per line */
-  int g_res;   /* get resolution value (ASC_STAT) */
-} geomtab[] = {
-  { 800, 3312, 414, ASC_RES_800},
-  { 700, 2896, 362, ASC_RES_700},
-  { 600, 2480, 310, ASC_RES_600},
-  { 500, 1656, 258, ASC_RES_500},
-  { 400, 1656, 207, ASC_RES_400},
-  { 300, 1240, 155, ASC_RES_300},
-  { 200, 832, 104, ASC_RES_200},
-  { 100, 416, 52, ASC_RES_100},
-  { 200, 3*GREY_LINE, 3*GREY_LINE, 0 /* returned by color scanner */},
-  { 200, GREY_LINE, GREY_LINE, 0 /* color scanner, grey mode */},
-  { INVALID, 416, 52, INVALID } /* terminator */
-};
-
-/***
- *** THE TABLE OF UNITS
- ***/
-
-struct _sbuf {
-  size_t  size;
-  size_t  rptr;
-  size_t  wptr; /* only changed in ascintr */
-  size_t  count;
-  char   *base;
-};
-
-struct asc_unit {
-  long thedev; /* XXX */
-  int base;            /* base address */
-  int dma_num;         /* dma number */
-  char    dma_byte;       /* mask of byte for setting DMA value */
-  char    int_byte;       /* mask of byte for setting int value */
-  char    cfg_byte;       /* mirror of byte written to config reg (ASC_CFG). */
-  char    cmd_byte;       /* mirror of byte written to cmd port (ASC_CMD)*/
-  char   portf_byte;
-  int flags;
-#define ATTACHED       0x01
-#define OPEN           0x02
-#define READING        0x04
-#define DMA_ACTIVE      0x08
-#define SLEEPING       0x10
-#define SEL_COLL       0x20
-#define PBM_MODE       0x40
-#define FLAG_DEBUG     0x80
-  int     geometry;       /* resolution as geomtab index */
-  int     linesize;       /* length of one scan line (from geom.table) */
-  int     blen;           /* length of buffer in lines */
-  int     btime;          /* timeout of buffer in seconds/hz */
-  struct  _sbuf sbuf;
-  long   icnt;         /* interrupt count XXX for debugging */
-  struct  kqinfo kqp;
-  int     height;         /* height, for pnm modes */
-  size_t  bcount;         /* bytes to read, for pnm modes */
-};
-
-static struct asc_unit unittab[NASC];                                 
-
-/*** I could not find a reasonable buffer size limit other than by
- *** experiments. MAXPHYS is obviously too much, while DEV_BSIZE and
- *** PAGE_SIZE are really too small. There must be something wrong
- *** with isa_dmastart/isa_dmarangecheck HELP!!!
- ***
- *** Note, must be DEFAULT_BLEN * samples_per_line <= MAX_BUFSIZE
- ***/
-#define MAX_BUFSIZE 0xb000 /* XXX was 0x3000 */
-#define DEFAULT_BLEN 16
-
-/***
- *** THE PER-DRIVER RECORD FOR ISA.C
- ***/
-static int ascprobe (struct isa_device *isdp);
-static int ascattach(struct isa_device *isdp);
-struct isa_driver ascdriver = { ascprobe, ascattach, "asc" };
-
-static void            ascintr(void *);
-
-static d_open_t                ascopen;
-static d_close_t       ascclose;
-static d_read_t                ascread;
-static d_ioctl_t       ascioctl;
-static d_kqfilter_t    asckqfilter;
-
-static void ascfilter_detach(struct knote *kn);
-static int ascfilter(struct knote *kn, long hint);
-
-static struct dev_ops asc_ops = {
-       { "asc", 0, 0 },
-       .d_open =       ascopen,
-       .d_close =      ascclose,
-       .d_read =       ascread,
-       .d_ioctl =      ascioctl,
-       .d_kqfilter =   asckqfilter
-};
-
-#define STATIC static
-
-/***
- *** LOCALLY USED SUBROUTINES
- ***
- ***/
-
-/***
- *** get_resolution
- ***   read resolution from the scanner
- ***/
-static void
-get_resolution(struct asc_unit *scu)
-{
-    int res, i, delay;
-
-    res=0;
-    scu->cmd_byte = ASC_STANDBY;
-    outb(ASC_CMD, scu->cmd_byte);
-    tsleep((caddr_t)scu, PCATCH, "ascres", hz/10);
-    for(delay= 100; (res=inb(ASC_STAT)) & ASC_RDY_FLAG; delay--)
-    {
-        i = tsleep((caddr_t)scu, PCATCH, "ascres0", 1);
-        if ( ( i == 0 ) || ( i == EWOULDBLOCK ) )
-           i = SUCCESS;
-       else
-           break;
-    }
-    if (delay==0) {
-       lprintf("asc.get_resolution: timeout completing command\n");
-       return /*  -1 */;
-    }
-    /* ... actual read resolution... */
-    res &= ASC_RES_MASK;
-    for (i=0; geomtab[i].dpi != INVALID; i++) {
-       if (geomtab[i].g_res == res) break;
-    }
-    if (geomtab[i].dpi==INVALID) {
-       scu->geometry= i; /* INVALID; */
-       lprintf("asc.get_resolution: wrong resolution\n");
-    } else {
-       lprintf("asc.get_resolution: %d dpi\n",geomtab[i].dpi);
-       scu->geometry = i;
-    }
-    scu->portf_byte=0; /* default */
-    if (geomtab[scu->geometry].g_res==0 && !(scu->thedev&FRMT_GRAY)) {
-       /* color scanner seems to require this */
-       scu->portf_byte=2;
-       /* scu->geometry++; */
-    }
-    scu->linesize = geomtab[scu->geometry].bpl;
-    scu->height = geomtab[scu->geometry].dpl; /* default... */
-}
-
-/***
- *** buffer_allocate
- ***   allocate/reallocate a buffer
- ***   Now just checks that the preallocated buffer is large enough.
- ***/
-
-static int
-buffer_allocate(struct asc_unit *scu)
-{
-  size_t size, size1;
-
-  size = scu->blen * scu->linesize;
-
-  lprintf("asc.buffer_allocate: need 0x%x bytes\n", size);
-
-  if ( size > MAX_BUFSIZE ) {
-      size1=size;
-      size= ( (MAX_BUFSIZE+scu->linesize-1) / scu->linesize)*scu->linesize;
-      lprintf("asc.buffer_allocate: 0x%x bytes are too much, try 0x%x\n",
-         size1, size);
-      return ENOMEM;
-  }
-
-  scu->sbuf.size = size;
-  scu->sbuf.rptr  = 0;
-  scu->sbuf.wptr  = 0;
-  scu->sbuf.count  = 0; /* available data for reading */
-
-  lprintf("asc.buffer_allocate: ok\n");
-
-  return SUCCESS;
-}
-
-/*** dma_restart
- ***   invoked locally to start dma. Must run in a critical section
- ***/
-static void
-dma_restart(struct asc_unit *scu)
-{
-    unsigned char al=scu->cmd_byte;
-
-    if (geomtab[scu->geometry].g_res==0) {/* color */
-       isa_dmastart(BUF_CMD_READ, 0, scu->sbuf.base+scu->sbuf.wptr,
-           scu->linesize + 90 /* XXX */ , scu->dma_num);
-       /*
-        * looks like we have to set and then clear this
-        * bit to enable the scanner to send interrupts
-        */
-       outb( ASC_CMD, al |= 4 ); /* seems to disable interrupts */
-#if 0
-       outb( ASC_CMD, al |= 8 ); /* ??? seems useless */
-#endif
-       outb( ASC_CMD, al &= 0xfb );
-       scu->cmd_byte = al;
-    } else {                                   /* normal */
-    isa_dmastart(BUF_CMD_READ, 0, scu->sbuf.base+scu->sbuf.wptr,
-       scu->linesize, scu->dma_num);
-    /*** this is done in sub_20, after dmastart ? ***/  
-#if 0
-    outb( ASC_CMD, al |= 4 );
-    outb( ASC_CMD, al |= 8 ); /* ??? seems useless */
-    outb( ASC_CMD, al &= 0xfb );
-    scu->cmd_byte = al;
-#else
-    outb( ASC_CMD, ASC_OPERATE); 
-#endif
-    }
-    scu->flags |= DMA_ACTIVE;
-}
-
-/***
- *** the main functions
- ***/
-
-/*** asc_reset
- ***   resets the scanner and the config bytes...
- ***/
-static void
-asc_reset(struct asc_unit *scu)
-{
-  scu->cfg_byte = 0 ; /* clear... */
-  scu->cmd_byte = 0 ; /* clear... */
-
-  outb(ASC_CFG,scu->cfg_byte); /* for safety, do this here */
-  outb(ASC_CMD,scu->cmd_byte); /* probably not needed */
-  tsleep((caddr_t)scu, PCATCH, "ascres", hz/10); /* sleep .1 sec */
-
-  scu->blen = DEFAULT_BLEN;
-  scu->btime = TIMEOUT;
-  scu->height = 0 ; /* don't know better... */
-}
-/**************************************************************************
- ***
- *** ascprobe
- ***   read status port and check for proper configuration:
- ***   - if address group matches (status byte has reasonable value)
- ***     cannot check interrupt/dma, only clear the config byte.
- ***/
-static int
-ascprobe (struct isa_device *isdp)
-{
-  int unit = isdp->id_unit;
-  struct asc_unit *scu = unittab + unit;
-  int stb;
-
-  scu->base = isdp->id_iobase; /*** needed by the following macros ***/
-  scu->flags = FLAG_DEBUG;
-
-  if ( isdp->id_iobase < 0 ) {
-      lprintf("asc%d.probe: no iobase given\n", unit);
-      return PROBE_FAIL;
-  }
-
-  if ((stb=inb(ASC_PROBE)) != ASC_PROBE_VALUE) {
-      lprintf("asc%d.probe: failed, got 0x%02x instead of 0x%02x\n",
-         unit, stb, ASC_PROBE_VALUE);
-      return PROBE_FAIL;
-  }
-
-/*
- * NOTE NOTE NOTE
- * the new AmiScan Color board uses int 10,11,12 instead of 3,5,10
- * respectively. This means that the driver must act accordingly.
- * Unfortunately there is no easy way of telling which board one has,
- * other than trying to get an interrupt and noticing that it is
- * missing. use "option ASC_NEW_BOARD" if you have a new board.
- *
- */
-
-#if ASC_NEW_BOARD
-#define        ASC_IRQ_A       10
-#define        ASC_IRQ_B       11
-#define        ASC_IRQ_C       12
-#else
-#define        ASC_IRQ_A       3
-#define        ASC_IRQ_B       5
-#define        ASC_IRQ_C       10
-#endif
-
-  switch(ffs(isdp->id_irq) - 1) {
-    case ASC_IRQ_A :
-      scu->int_byte = ASC_CNF_IRQ3;
-      break;
-    case ASC_IRQ_B :
-      scu->int_byte = ASC_CNF_IRQ5;
-      break;
-    case ASC_IRQ_C :
-      scu->int_byte = ASC_CNF_IRQ10;
-      break;
-#if 0
-    case -1:
-      scu->int_byte = 0;
-      lprintf("asc%d.probe: warning - going interruptless\n", unit);
-      break;
-#endif
-    default:
-      lprintf("asc%d.probe: unsupported INT %d (only 3, 5, 10)\n",
-               unit, ffs(isdp->id_irq) - 1 );
-      return PROBE_FAIL;
-  }
-  scu->dma_num = isdp->id_drq;
-  switch(scu->dma_num) {
-    case 1:
-      scu->dma_byte = ASC_CNF_DMA1;
-      break;
-    case 3:
-      scu->dma_byte = ASC_CNF_DMA3;
-      break;
-    default:
-      lprintf("asc%d.probe: unsupported DMA %d (only 1 or 3)\n", 
-               unit, scu->dma_num);
-      return PROBE_FAIL;
-  }
-  asc_reset(scu);
-/*  lprintf("asc%d.probe: ok\n", unit); */
-
-  scu->flags &= ~FLAG_DEBUG;
-  scu->icnt = 0;
-  return PROBE_SUCCESS;
-}
-
-/**************************************************************************
- ***
- *** ascattach
- ***   finish initialization of unit structure, get geometry value (?)
- ***/
-
-static int
-ascattach(struct isa_device *isdp)
-{
-  int unit = isdp->id_unit;
-  struct asc_unit *scu = unittab + unit;
-
-  isdp->id_intr = (inthand2_t *)ascintr;
-  scu->flags |= FLAG_DEBUG;
-  kprintf("asc%d: [GI1904/Trust Ami-Scan Grey/Color]\n", unit);
-
-  /*
-   * Initialize buffer structure.
-   * XXX this must be done early to give a good chance of getting a
-   * contiguous buffer.  This wastes memory.
-   */
-  scu->sbuf.base = contigmalloc((unsigned long)MAX_BUFSIZE, M_DEVBUF, M_NOWAIT,
-                               0ul, 0xfffffful, 1ul, 0x10000ul);
-  if ( scu->sbuf.base == NULL )
-    {
-      lprintf("asc%d.attach: buffer allocation failed\n", unit);
-      return ATTACH_FAIL;      /* XXX attach must not fail */
-    }
-  scu->sbuf.size = INVALID;
-  scu->sbuf.rptr  = INVALID;
-
-  scu->flags |= ATTACHED;
-/*  lprintf("asc%d.attach: ok\n", unit); */
-  scu->flags &= ~FLAG_DEBUG;
-
-#define ASC_UID 0
-#define ASC_GID 13
-  make_dev(&asc_ops, unit<<6, ASC_UID, ASC_GID, 0666, "asc%d", unit);
-  make_dev(&asc_ops, ((unit<<6) + FRMT_PBM),
-          ASC_UID,  ASC_GID, 0666, "asc%dp", unit);
-  make_dev(&asc_ops, ((unit<<6) + DBUG_MASK),
-          ASC_UID,  ASC_GID, 0666, "asc%dd", unit);
-  make_dev(&asc_ops, ((unit<<6) + DBUG_MASK+FRMT_PBM), 
-          ASC_UID, ASC_GID, 0666, "asc%dpd", unit);
-  return ATTACH_SUCCESS;
-}
-
-/**************************************************************************
- ***
- *** ascintr
- ***   the interrupt routine, at the end of DMA...
- ***/
-static void
-ascintr(void *arg)
-{
-    int unit = (int)arg;
-    struct asc_unit *scu = unittab + unit;
-    int chan_bit = 0x01 << scu->dma_num;
-
-    scu->icnt++;
-    /* ignore stray interrupts... */
-    if ((scu->flags & (OPEN |READING)) != (OPEN | READING) ) {
-       /* must be after closing... */
-       scu->flags &= ~(OPEN | READING | DMA_ACTIVE | SLEEPING | SEL_COLL);
-       return;
-    }
-    if ( (scu->flags & DMA_ACTIVE) && (inb(DMA1_READY) & chan_bit) != 0) {
-       outb( ASC_CMD, ASC_STANDBY);
-       scu->flags &= ~DMA_ACTIVE;
-               /* bounce buffers... */
-        isa_dmadone(BUF_CMD_READ, 0, scu->sbuf.base+scu->sbuf.wptr,
-           scu->linesize, scu->dma_num);
-       scu->sbuf.wptr += scu->linesize;
-       if (scu->sbuf.wptr >= scu->sbuf.size) scu->sbuf.wptr=0;
-       scu->sbuf.count += scu->linesize;
-       if (scu->flags & SLEEPING) {
-           scu->flags &= ~SLEEPING;
-           wakeup((caddr_t)scu);
-       }
-       if (scu->sbuf.size - scu->sbuf.count >= scu->linesize) {
-           dma_restart(scu);
-       }
-       KNOTE(&scu->kqp.ki_note, 0);
-    }
-}
-
-/**************************************************************************
- ***
- *** ascopen
- ***   set open flag, set modes according to minor number
- ***   FOR RELEASE:
- ***   don't switch scanner on, wait until first read or ioctls go before
- ***/
-
-STATIC int
-ascopen(struct dev_open_args *ap)
-{
-  cdev_t dev = ap->a_head.a_dev;
-  struct asc_unit *scu;
-  int unit;
-
-  unit = UNIT(minor(dev)) & UNIT_MASK;
-  if ( unit >= NASC )
-    {
-#ifdef ASCDEBUG
-      /* XXX lprintf isn't valid here since there is no scu. */
-      kprintf("asc%d.open: unconfigured unit number (max %d)\n", unit, NASC);
-#endif
-      return ENXIO;
-    }
-  scu = unittab + unit;
-  if ( !( scu->flags & ATTACHED ) )
-    {
-      lprintf("asc%d.open: unit was not attached successfully 0x%04x\n",
-            unit, scu->flags);
-      return ENXIO;
-    }
-
-  if ( minor(dev) & DBUG_MASK )
-    scu->flags |= FLAG_DEBUG;
-  else
-    scu->flags &= ~FLAG_DEBUG;
-
-  switch(minor(dev) & FRMT_MASK) {
-  case FRMT_PBM:
-    scu->flags |= PBM_MODE;
-    lprintf("asc%d.open: pbm mode\n", unit);
-    break;
-  case FRMT_RAW:
-    lprintf("asc%d.open: raw mode\n", unit);
-    scu->flags &= ~PBM_MODE;
-    break;
-  default:
-    lprintf("asc%d.open: gray maps are not yet supported", unit);
-    return ENXIO;
-  }
-  
-  lprintf("asc%d.open: minor %d icnt %ld\n", unit, minor(dev), scu->icnt);
-
-  if ( scu->flags & OPEN ) {
-      lprintf("asc%d.open: already open", unit);
-      return EBUSY;
-  }
-  if (isa_dma_acquire(scu->dma_num))
-      return(EBUSY);
-
-  scu->flags = ATTACHED | OPEN;      
-
-  asc_reset(scu);
-  get_resolution(scu);
-  return SUCCESS;
-}
-
-static int
-asc_startread(struct asc_unit *scu)
-{
-    /*** from here on, things can be delayed to the first read/ioctl ***/
-    /*** this was done in sub_12... ***/
-  scu->cfg_byte= scu->cmd_byte=0;      /* init scanner */
-  outb(ASC_CMD, scu->cmd_byte);
-    /*** this was done in sub_16, set scan len... ***/
-  outb(ASC_BOH, scu->portf_byte );
-  if (geomtab[scu->geometry].g_res==0) {               /* color */
-       scu->cmd_byte = 0x00 ;
-  } else {
-  scu->cmd_byte = 0x90 ;
-  }
-  outb(ASC_CMD, scu->cmd_byte);
-  outb(ASC_LEN_L, scu->linesize & 0xff /* len_low */);
-  outb(ASC_LEN_H, (scu->linesize >>8) & 0xff /* len_high */);
-    /*** this was done in sub_21, config DMA ... ***/
-  scu->cfg_byte |= scu->dma_byte;
-  outb(ASC_CFG, scu->cfg_byte);
-    /*** sub_22: enable int on the scanner ***/
-  scu->cfg_byte |= scu->int_byte;
-  outb(ASC_CFG, scu->cfg_byte);
-    /*** sub_28: light on etc...***/
-  scu->cmd_byte = ASC_STANDBY;
-  outb(ASC_CMD, scu->cmd_byte);
-  tsleep((caddr_t)scu, PCATCH, "ascstrd", hz/10); /* sleep .1 sec */
-  return SUCCESS;
-}
-
-/**************************************************************************
- ***
- *** ascclose
- ***   turn off scanner, release the buffer
- ***   should probably terminate dma ops, release int and dma. lr 12mar95
- ***/
-
-STATIC int
-ascclose(struct dev_close_args *ap)
-{
-  cdev_t dev = ap->a_head.a_dev;
-  int unit = UNIT(minor(dev));
-  struct asc_unit *scu = unittab + unit;
-
-  lprintf("asc%d.close: minor %d\n",
-        unit, minor(dev));
-
-  if ( unit >= NASC || !( scu->flags & ATTACHED ) ) {
-      lprintf("asc%d.close: unit was not attached successfully 0x%04x\n",
-            unit, scu->flags);
-      return ENXIO;
-  }
-    /* all this is in sub_29... */
-  /* cli(); */
-  outb(ASC_CFG, 0 ); /* don't save in CFG byte!!! */
-  scu->cmd_byte &= ~ASC_LIGHT_ON;
-  outb(ASC_CMD, scu->cmd_byte);/* light off */
-  tsleep((caddr_t)scu, PCATCH, "ascclo", hz/2); /* sleep 1/2 sec */
-  scu->cfg_byte &= ~ scu->dma_byte ; /* disable scanner dma */
-  scu->cfg_byte &= ~ scu->int_byte ; /* disable scanner int */
-  outb(ASC_CFG, scu->cfg_byte);
-    /* --- disable dma controller ? --- */
-  isa_dma_release(scu->dma_num);
-    /* --- disable interrupts on the controller (sub_24) --- */
-
-  scu->sbuf.size = INVALID;
-  scu->sbuf.rptr  = INVALID;
-
-  scu->flags &= ~(FLAG_DEBUG | OPEN | READING);
-  
-  return SUCCESS;
-}
-
-static void
-pbm_init(struct asc_unit *scu)
-{
-    int width = geomtab[scu->geometry].dpl;
-    int l= ksprintf(scu->sbuf.base,"P4 %d %d\n", width, scu->height);
-    char *p;
-
-    scu->bcount = scu->height * width / 8 + l;
-
-      /* move header to end of sbuf */
-    scu->sbuf.rptr=scu->sbuf.size-l;
-    bcopy(scu->sbuf.base, scu->sbuf.base+scu->sbuf.rptr,l);
-    scu->sbuf.count = l;
-    if (geomtab[scu->geometry].g_res!=0) { /* BW scanner */
-    for(p = scu->sbuf.base + scu->sbuf.rptr; l; p++, l--)
-       *p = ~*p;
-}
-}
-/**************************************************************************
- ***
- *** ascread
- ***/
-
-STATIC int
-ascread(struct dev_read_args *ap)
-{
-  cdev_t dev = ap->a_head.a_dev;
-  struct uio *uio = ap->a_uio;
-  int unit = UNIT(minor(dev));
-  struct asc_unit *scu = unittab + unit;
-  size_t nbytes;
-  int res;
-  unsigned char *p;
-  
-  lprintf("asc%d.read: minor %d icnt %ld\n", unit, minor(dev), scu->icnt);
-
-  if ( unit >= NASC || !( scu->flags & ATTACHED ) ) {
-      lprintf("asc%d.read: unit was not attached successfully 0x%04x\n",
-            unit, scu->flags);
-      return ENXIO;
-  }
-
-  if ( !(scu->flags & READING) ) { /*** first read... ***/
-       /* allocate a buffer for reading data and init things */
-      if ( (res = buffer_allocate(scu)) == SUCCESS ) scu->flags |= READING;
-      else return res;
-      asc_startread(scu);
-      if ( scu->flags & PBM_MODE ) { /* initialize for pbm mode */
-         pbm_init(scu);
-      }
-  }
-  
-  lprintf("asc%d.read(before): "
-      "sz 0x%x, rptr 0x%x, wptr 0x%x, cnt 0x%x bcnt 0x%x flags 0x%x icnt %ld\n",
-         unit, scu->sbuf.size, scu->sbuf.rptr,
-         scu->sbuf.wptr, scu->sbuf.count, scu->bcount,scu->flags,
-         scu->icnt);
-
-  crit_enter();
-  if ( scu->sbuf.count == 0 ) { /* no data avail., must wait */
-      if (!(scu->flags & DMA_ACTIVE)) dma_restart(scu);
-      scu->flags |= SLEEPING;
-      res = tsleep((caddr_t)scu, PCATCH, "ascread", 0);
-      scu->flags &= ~SLEEPING;
-      if ( res == 0 ) res = SUCCESS;
-  }
-  crit_exit();
-  if (scu->flags & FLAG_DEBUG)
-      tsleep((caddr_t)scu, PCATCH, "ascdly",hz);
-  lprintf("asc%d.read(after): "
-      "sz 0x%x, rptr 0x%x, wptr 0x%x, cnt 0x%x bcnt 0x%x flags 0x%x icnt %ld\n",
-         unit, scu->sbuf.size, scu->sbuf.rptr,
-         scu->sbuf.wptr, scu->sbuf.count, scu->bcount,scu->flags,scu->icnt);
-
-       /* first, not more than available... */
-  nbytes = szmin(uio->uio_resid, scu->sbuf.count);
-       /* second, contiguous data... */
-  nbytes = szmin(nbytes, (scu->sbuf.size - scu->sbuf.rptr));
-       /* third, one line (will remove this later, XXX) */
-  nbytes = szmin(nbytes, scu->linesize);
-  if ( (scu->flags & PBM_MODE) )
-      nbytes = szmin(nbytes, scu->bcount);
-  lprintf("asc%d.read: transferring 0x%x bytes\n", unit, nbytes);
-  if (geomtab[scu->geometry].g_res!=0) { /* BW scanner */
-  lprintf("asc%d.read: invert buffer\n",unit);
-  for(p = scu->sbuf.base + scu->sbuf.rptr, res=nbytes; res; p++, res--)
-       *p = ~*p;
-  }
-  res = uiomove(scu->sbuf.base + scu->sbuf.rptr, nbytes, uio);
-  if ( res != SUCCESS ) {
-      lprintf("asc%d.read: uiomove failed %d", unit, res);
-      return res;
-  }
-  
-  crit_enter();
-  scu->sbuf.rptr += nbytes;
-  if (scu->sbuf.rptr >= scu->sbuf.size) scu->sbuf.rptr=0;
-  scu->sbuf.count -= nbytes;
-       /* having moved some data, can read mode */
-  if (!(scu->flags & DMA_ACTIVE)) dma_restart(scu);
-  crit_exit();
-  if ( scu->flags & PBM_MODE ) scu->bcount -= nbytes;
-  
-  lprintf("asc%d.read: size 0x%x, pointer 0x%x, bcount 0x%x, ok\n",
-         unit, scu->sbuf.size, scu->sbuf.rptr, scu->bcount);
-  
-  return SUCCESS;
-}
-
-/**************************************************************************
- ***
- *** ascioctl
- ***/
-
-STATIC int
-ascioctl(struct dev_ioctl_args *ap)
-{
-  cdev_t dev = ap->a_head.a_dev;
-  caddr_t data = ap->a_data;
-  int unit = UNIT(minor(dev));
-  struct asc_unit *scu = unittab + unit;
-
-  lprintf("asc%d.ioctl: minor %d\n",
-        unit, minor(dev));
-
-  if ( unit >= NASC || !( scu->flags & ATTACHED ) ) {
-      lprintf("asc%d.ioctl: unit was not attached successfully 0x%04x\n",
-            unit, scu->flags);
-      return ENXIO;
-  }
-  switch(ap->a_cmd) {
-  case ASC_GRES:
-    asc_reset(scu);
-    get_resolution(scu);
-    *(int *)data=geomtab[scu->geometry].dpi;
-    lprintf("asc%d.ioctl:ASC_GRES %ddpi\n", unit, *(int *)data);
-    return SUCCESS;    
-  case ASC_GWIDTH:
-    *(int *)data=geomtab[scu->geometry].dpl;
-    lprintf("asc%d.ioctl:ASC_GWIDTH %d\n", unit, *(int *)data);
-    return SUCCESS;    
-  case ASC_GHEIGHT:
-    *(int *)data=scu->height;
-    lprintf("asc%d.ioctl:ASC_GHEIGHT %d\n", unit, *(int *)data);
-    return SUCCESS;
-  case ASC_SHEIGHT:
-    lprintf("asc%d.ioctl:ASC_SHEIGHT %d\n", unit, *(int *)data);
-    if ( scu->flags & READING ) { 
-       lprintf("asc%d:ioctl on already reading unit\n", unit);
-       return EBUSY;
-    }
-    scu->height=*(int *)data;
-    return SUCCESS;
-#if 0  
-  case ASC_GBLEN:
-    *(int *)data=scu->blen;
-    lprintf("asc%d.ioctl:ASC_GBLEN %d\n", unit, *(int *)data);
-    return SUCCESS;
-  case ASC_SBLEN:
-    lprintf("asc%d.ioctl:ASC_SBLEN %d\n", unit, *(int *)data);
-    if (*(int *)data * geomtab[scu->geometry].dpl / 8 > MAX_BUFSIZE)
-      {
-       lprintf("asc%d:ioctl buffer size too high\n", unit);
-       return ENOMEM;
-      }
-    scu->blen=*(int *)data;
-    return SUCCESS;
-  case ASC_GBTIME:
-    *(int *)data = scu->btime / hz;
-    lprintf("asc%d.ioctl:ASC_GBTIME %d\n", unit, *(int *)data);
-    return SUCCESS;
-  case ASC_SBTIME:
-    scu->btime = *(int *)data * hz;
-    lprintf("asc%d.ioctl:ASC_SBTIME %d\n", unit, *(int *)data);
-    return SUCCESS;
-#endif
-  default: return ENOTTY;
-  }
-  return SUCCESS;
-}
-
-static struct filterops ascfiltops =
-    { FILTEROP_ISFD, NULL, ascfilter_detach, ascfilter };
-
-STATIC int
-asckqfilter(struct dev_kqfilter_args *ap)
-{
-    cdev_t dev = ap->a_head.a_dev;
-    int unit = UNIT(minor(dev));
-    struct asc_unit *scu = unittab + unit;
-    struct knote *kn = ap->a_kn;
-    struct klist *klist;
-
-    ap->a_result = 0;
-
-    switch (kn->kn_filter) {
-    case EVFILT_READ:
-        kn->kn_fop = &ascfiltops;
-        kn->kn_hook = (caddr_t)scu;
-        break;
-    default:
-        ap->a_result = EOPNOTSUPP;
-        return (0);
-    }
-
-    klist = &scu->kqp.ki_note;
-    knote_insert(klist, kn);
-
-    return (0);
-}
-
-STATIC void
-ascfilter_detach(struct knote *kn)
-{
-    struct asc_unit *scu = (struct asc_unit *)kn->kn_hook;
-    struct klist *klist;
-
-    klist = &scu->kqp.ki_note;
-    knote_remove(klist, kn);
-}
-
-STATIC int
-ascfilter(struct knote *kn, long hint)
-{
-    struct asc_unit *scu = (struct asc_unit *)kn->kn_hook;
-    int ready = 0;
-
-    crit_enter();
-    if (scu->sbuf.count >0)
-        ready = 1;
-    else {
-        if (!(scu->flags & DMA_ACTIVE))
-            dma_restart(scu);
-    }
-    crit_exit();
-
-    return (ready);
-}
index 0bfa0fa..9490f24 100644 (file)
@@ -133,7 +133,6 @@ SUBDIR= 802_11 \
        watch \
        watchdogd \
        wlandebug \
-       xten \
        yp_mkdb \
        ypbind \
        yppoll \
@@ -178,14 +177,15 @@ SUBDIR+=apm \
        lptcontrol \
        mptable \
        rndcontrol \
-       sgsc \
        sicontrol \
-       spkrtest \
-       stallion
+       spkrtest
 .endif
 
 .if ${MACHINE_ARCH} == "i386"
-SUBDIR+=wlconfig
+SUBDIR+=sgsc \
+       stallion \
+       wlconfig \
+       xten
 
 .if !defined(NO_I4B)
 SUBDIR+=i4b
index 4d75d5d..d0f7cfe 100644 (file)
@@ -1,5 +1,4 @@
 # $FreeBSD: src/usr.sbin/stallion/bootcode/Makefile,v 1.9.2.3 2002/02/18 15:03:37 ru Exp $
-# $DragonFly: src/usr.sbin/stallion/bootcode/Makefile,v 1.2 2003/06/17 04:30:03 dillon Exp $
 
 .SUFFIXES: .uu
 .uu:
@@ -10,8 +9,4 @@ FILES= 2681.sys cdk.sys
 FILESDIR=      ${BOOTDIR}
 CLEANFILES=    ${FILES}
 
-MAN=   stl.4
-MLINKS=        stl.4 stli.4
-MANSUBDIR=/i386
-
 .include <bsd.prog.mk>