Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/nathanw_sa]: src/sys/arch/arc/jazz bus_space'fied fd driver by TSUTSUI I...



details:   https://anonhg.NetBSD.org/src/rev/b3342c50513d
branches:  nathanw_sa
changeset: 504679:b3342c50513d
user:      soda <soda%NetBSD.org@localhost>
date:      Tue May 22 03:22:51 2001 +0000

description:
bus_space'fied fd driver by TSUTSUI Izumi,
works with PICA-61 and Microsoft-Jazz,
but still doesn't work with his NEC-JC94 (NEC Express 5800/230)
due to data overrun.

diffstat:

 sys/arch/arc/jazz/fdcvar.h |  146 +++++++++++++++++++++++++++++++++++++++++++++
 sys/arch/arc/jazz/fdreg.h  |   69 +++++++++++++++++++++
 2 files changed, 215 insertions(+), 0 deletions(-)

diffs (223 lines):

diff -r 3a4efb7b88d4 -r b3342c50513d sys/arch/arc/jazz/fdcvar.h
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/sys/arch/arc/jazz/fdcvar.h        Tue May 22 03:22:51 2001 +0000
@@ -0,0 +1,146 @@
+/*     $NetBSD: fdcvar.h,v 1.1.10.2 2001/05/22 03:22:51 soda Exp $     */
+
+/*-
+ * Copyright (c) 1998 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software contributed to The NetBSD Foundation
+ * by Charles M. Hannum.
+ *
+ * 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 the NetBSD
+ *        Foundation, Inc. and its contributors.
+ * 4. Neither the name of The NetBSD Foundation nor the names of its
+ *    contributors may be used to endorse or promote products derived
+ *    from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. 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 FOUNDATION 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.
+ */
+
+/*-
+ * Copyright (c) 1990 The Regents of the University of California.
+ * All rights reserved.
+ *
+ * This code is derived from software contributed to Berkeley by
+ * Don Ahn.
+ *
+ * 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 the University of
+ *     California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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.
+ *
+ *     @(#)fd.c        7.4 (Berkeley) 5/25/91
+ */
+
+/*
+ * Floppy formatting facilities merged from FreeBSD fd.c driver:
+ *     Id: fd.c,v 1.53 1995/03/12 22:40:56 joerg Exp
+ * which carries the same copyright/redistribution notice as shown above with
+ * the addition of the following statement before the "Redistribution and
+ * use ..." clause:
+ *
+ * Copyright (c) 1993, 1994 by
+ *  jc%irbs.UUCP@localhost (John Capo)
+ *  vak%zebub.msk.su@localhost (Serge Vakulenko)
+ *  ache%astral.msk.su@localhost (Andrew A. Chernov)
+ *
+ * Copyright (c) 1993, 1994, 1995 by
+ *  joerg_wunsch%uriah.sax.de@localhost (Joerg Wunsch)
+ *  dufault%hda.com@localhost (Peter Dufault)
+ */
+
+enum fdc_state {
+       DEVIDLE = 0,
+       MOTORWAIT,
+       DOSEEK,
+       SEEKWAIT,
+       SEEKTIMEDOUT,
+       SEEKCOMPLETE,
+       DOIO,
+       IOCOMPLETE,
+       IOTIMEDOUT,
+       DORESET,
+       RESETCOMPLETE,
+       RESETTIMEDOUT,
+       DORECAL,
+       RECALWAIT,
+       RECALTIMEDOUT,
+       RECALCOMPLETE,
+};
+
+/* software state, per controller */
+struct fdc_softc {
+       struct device sc_dev;           /* boilerplate */
+       void *sc_ih;
+
+       bus_space_tag_t sc_iot;         /* I/O space identifier */
+       bus_space_handle_t sc_ioh;      /* I/O handle */
+
+       struct callout sc_timo_ch;      /* timeout callout */
+       struct callout sc_intr_ch;      /* pseudo-intr callout */
+
+       bus_size_t sc_maxiosize;
+
+       struct fd_softc *sc_fd[4];      /* pointers to children */
+       TAILQ_HEAD(drivehead, fd_softc) sc_drives;
+       enum fdc_state sc_state;
+       int sc_errors;                  /* number of retries so far */
+       u_char sc_status[7];            /* copy of registers */
+
+       /* DMA functions set from MD code */
+       void (*sc_dma_start)(struct fdc_softc *, caddr_t, size_t, int);
+       void (*sc_dma_abort)(struct fdc_softc *);
+       void (*sc_dma_done)(struct fdc_softc *);
+};
+
+#define FDCDMA_START(fdc, addr, len, datain)   \
+    (*(fdc)->sc_dma_start)(fdc, addr, len, datain)
+#define FDCDMA_ABORT(fdc)      (*(fdc)->sc_dma_abort)(fdc)
+#define FDCDMA_DONE(fdc)       (*(fdc)->sc_dma_done)(fdc)
+
+int out_fdc(bus_space_tag_t iot, bus_space_handle_t ioh, u_char x);
+
+void fdcattach(struct fdc_softc *);
+int fdcintr(void *);
diff -r 3a4efb7b88d4 -r b3342c50513d sys/arch/arc/jazz/fdreg.h
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/sys/arch/arc/jazz/fdreg.h Tue May 22 03:22:51 2001 +0000
@@ -0,0 +1,69 @@
+/*     $NetBSD: fdreg.h,v 1.2.8.2 2001/05/22 03:22:51 soda Exp $       */
+/*     $OpenBSD: fdreg.h,v 1.1.1.1 1996/06/24 09:07:19 pefo Exp $      */
+/*     NetBSD: fdreg.h,v 1.8 1995/06/28 04:30:57 cgd Exp       */
+
+/*-
+ * Copyright (c) 1991 The Regents of the University of California.
+ * 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 the University of
+ *     California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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.
+ *
+ *     @(#)fdreg.h     7.1 (Berkeley) 5/9/91
+ */
+
+/*
+ * AT floppy controller registers and bitfields
+ */
+
+/* uses NEC765 controller */
+#include <dev/ic/nec765reg.h>
+
+/* registers */
+#define        FDOUT   0       /* Digital Output Register (W) */
+#define        FDO_FDSEL       0x03    /*  floppy device select */
+#define        FDO_FRST        0x04    /*  floppy controller reset */
+#define        FDO_FDMAEN      0x08    /*  enable floppy DMA and Interrupt */
+#define        FDO_MOEN(n)     ((1 << n) * 0x10)       /* motor enable */
+
+#define        FDSTS   2       /* NEC 765 Main Status Register (R) */
+#define        FDDATA  3       /* NEC 765 Data Register (R/W) */
+
+#define        FDCTL   5       /* Control Register (W) */
+#define        FDC_500KBPS     0x00    /* 500KBPS MFM drive transfer rate */
+#define        FDC_300KBPS     0x01    /* 300KBPS MFM drive transfer rate */
+#define        FDC_250KBPS     0x02    /* 250KBPS MFM drive transfer rate */
+#define        FDC_125KBPS     0x03    /* 125KBPS FM drive transfer rate */
+
+#define        FDIN    5       /* Digital Input Register (R) */
+#define        FDI_DCHG        0x80    /* diskette has been changed */
+
+#define        FDC_BSIZE       512
+#if 0
+#define        FDC_NPORT       8
+#endif



Home | Main Index | Thread Index | Old Index