[BACK]Return to isa_machdep.h CVS log [TXT][DIR] Up to [local] / sys / arch / i386 / isa

Annotation of sys/arch/i386/isa/isa_machdep.h, Revision 1.1

1.1     ! nbrk        1: /*     $OpenBSD: isa_machdep.h,v 1.21 2006/02/12 19:55:39 miod Exp $   */
        !             2: /*     $NetBSD: isa_machdep.h,v 1.7 1997/06/06 23:28:42 thorpej Exp $  */
        !             3:
        !             4: /*-
        !             5:  * Copyright (c) 1996, 1997 The NetBSD Foundation, Inc.
        !             6:  * All rights reserved.
        !             7:  *
        !             8:  * This code is derived from software contributed to The NetBSD Foundation
        !             9:  * by Jason R. Thorpe of the Numerical Aerospace Simulation Facility,
        !            10:  * NASA Ames Research Center.
        !            11:  *
        !            12:  * Redistribution and use in source and binary forms, with or without
        !            13:  * modification, are permitted provided that the following conditions
        !            14:  * are met:
        !            15:  * 1. Redistributions of source code must retain the above copyright
        !            16:  *    notice, this list of conditions and the following disclaimer.
        !            17:  * 2. Redistributions in binary form must reproduce the above copyright
        !            18:  *    notice, this list of conditions and the following disclaimer in the
        !            19:  *    documentation and/or other materials provided with the distribution.
        !            20:  * 3. All advertising materials mentioning features or use of this software
        !            21:  *    must display the following acknowledgement:
        !            22:  *     This product includes software developed by the NetBSD
        !            23:  *     Foundation, Inc. and its contributors.
        !            24:  * 4. Neither the name of The NetBSD Foundation nor the names of its
        !            25:  *    contributors may be used to endorse or promote products derived
        !            26:  *    from this software without specific prior written permission.
        !            27:  *
        !            28:  * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
        !            29:  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
        !            30:  * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
        !            31:  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
        !            32:  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
        !            33:  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
        !            34:  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
        !            35:  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
        !            36:  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
        !            37:  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
        !            38:  * POSSIBILITY OF SUCH DAMAGE.
        !            39:  */
        !            40:
        !            41: /*-
        !            42:  * Copyright (c) 1990 The Regents of the University of California.
        !            43:  * All rights reserved.
        !            44:  *
        !            45:  * This code is derived from software contributed to Berkeley by
        !            46:  * William Jolitz.
        !            47:  *
        !            48:  * Redistribution and use in source and binary forms, with or without
        !            49:  * modification, are permitted provided that the following conditions
        !            50:  * are met:
        !            51:  * 1. Redistributions of source code must retain the above copyright
        !            52:  *    notice, this list of conditions and the following disclaimer.
        !            53:  * 2. Redistributions in binary form must reproduce the above copyright
        !            54:  *    notice, this list of conditions and the following disclaimer in the
        !            55:  *    documentation and/or other materials provided with the distribution.
        !            56:  * 3. Neither the name of the University nor the names of its contributors
        !            57:  *    may be used to endorse or promote products derived from this software
        !            58:  *    without specific prior written permission.
        !            59:  *
        !            60:  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
        !            61:  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
        !            62:  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
        !            63:  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
        !            64:  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
        !            65:  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
        !            66:  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
        !            67:  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
        !            68:  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
        !            69:  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
        !            70:  * SUCH DAMAGE.
        !            71:  *
        !            72:  *     @(#)isa.h       5.7 (Berkeley) 5/9/91
        !            73:  */
        !            74:
        !            75: /*
        !            76:  * Various pieces of the i386 port want to include this file without
        !            77:  * or in spite of using isavar.h, and should be fixed.
        !            78:  */
        !            79:
        !            80: #ifndef _I386_ISA_MACHDEP_H_                   /* XXX */
        !            81: #define _I386_ISA_MACHDEP_H_                   /* XXX */
        !            82:
        !            83: #include <machine/bus.h>
        !            84:
        !            85: /*
        !            86:  * ISA can only DMA to 0-16M.
        !            87:  */
        !            88: #define        ISA_DMA_BOUNCE_THRESHOLD        0x00ffffff
        !            89:
        !            90: /*
        !            91:  * XXX THIS FILE IS A MESS.  copyright: berkeley's probably.
        !            92:  * contents from isavar.h and isareg.h, mostly the latter.
        !            93:  * perhaps charles's?
        !            94:  *
        !            95:  * copyright from berkeley's isa.h which is now dev/isa/isareg.h.
        !            96:  */
        !            97:
        !            98: /*
        !            99:  * Types provided to machine-independent ISA code.
        !           100:  */
        !           101: typedef void *isa_chipset_tag_t;
        !           102:
        !           103: struct device;                 /* XXX */
        !           104: struct isabus_attach_args;     /* XXX */
        !           105:
        !           106: /*
        !           107:  * Functions provided to machine-independent ISA code.
        !           108:  */
        !           109: void   isa_attach_hook(struct device *, struct device *,
        !           110:            struct isabus_attach_args *);
        !           111: int    isa_intr_alloc(isa_chipset_tag_t, int, int, int *);
        !           112: int    isa_intr_check(isa_chipset_tag_t, int, int);
        !           113: void   *isa_intr_establish(isa_chipset_tag_t ic, int irq, int type,
        !           114:            int level, int (*ih_fun)(void *), void *ih_arg, char *ih_what);
        !           115: void   isa_intr_disestablish(isa_chipset_tag_t ic, void *handler);
        !           116:
        !           117: /*
        !           118:  * ALL OF THE FOLLOWING ARE MACHINE-DEPENDENT, AND SHOULD NOT BE USED
        !           119:  * BY PORTABLE CODE.
        !           120:  */
        !           121:
        !           122: extern struct i386_bus_dma_tag isa_bus_dma_tag;
        !           123:
        !           124: /*
        !           125:  * Cookie used by ISA dma.  A pointer to one of these it stashed in
        !           126:  * the DMA map.
        !           127:  */
        !           128: struct i386_isa_dma_cookie {
        !           129:        int     id_flags;               /* flags; see below */
        !           130:
        !           131:        void    *id_origbuf;            /* pointer to orig buffer if
        !           132:                                           bouncing */
        !           133:        bus_size_t id_origbuflen;       /* ...and size */
        !           134:
        !           135:        void    *id_bouncebuf;          /* pointer to the bounce buffer */
        !           136:        bus_size_t id_bouncebuflen;     /* ...and size */
        !           137:        int     id_nbouncesegs;         /* number of valid bounce segs */
        !           138:        bus_dma_segment_t id_bouncesegs[0]; /* array of bounce buffer
        !           139:                                               physical memory segments */
        !           140: };
        !           141:
        !           142: /* id_flags */
        !           143: #define        ID_MIGHT_NEED_BOUNCE    0x01    /* map could need bounce buffers */
        !           144: #define        ID_HAS_BOUNCE           0x02    /* map currently has bounce buffers */
        !           145: #define        ID_IS_BOUNCING          0x04    /* map is bouncing current xfer */
        !           146:
        !           147: /*
        !           148:  * XXX Various seemingly PC-specific constants, some of which may be
        !           149:  * unnecessary anyway.
        !           150:  */
        !           151:
        !           152: /*
        !           153:  * RAM Physical Address Space (ignoring the above mentioned "hole")
        !           154:  */
        !           155: #define        RAM_BEGIN       0x0000000       /* Start of RAM Memory */
        !           156: #define        RAM_END         0x1000000       /* End of RAM Memory */
        !           157: #define        RAM_SIZE        (RAM_END - RAM_BEGIN)
        !           158:
        !           159: /*
        !           160:  * Oddball Physical Memory Addresses
        !           161:  */
        !           162: #define        COMPAQ_RAMRELOC 0x80c00000      /* Compaq RAM relocation/diag */
        !           163: #define        COMPAQ_RAMSETUP 0x80c00002      /* Compaq RAM setup */
        !           164: #define        WEITEK_FPU      0xC0000000      /* WTL 2167 */
        !           165: #define        CYRIX_EMC       0xC0000000      /* Cyrix EMC */
        !           166:
        !           167: /*
        !           168:  * stuff that used to be in pccons.c
        !           169:  */
        !           170: #define        MONO_BUF        0xB0000
        !           171: #define        CGA_BUF         0xB8000
        !           172: #define        IOPHYSMEM       0xA0000
        !           173:
        !           174:
        !           175: /*
        !           176:  * ISA DMA bounce buffers.
        !           177:  * XXX should be made partially machine- and bus-mapping-independent.
        !           178:  *
        !           179:  * DMA_BOUNCE is the number of pages of low-addressed physical memory
        !           180:  * to acquire for ISA bounce buffers. If physical memory below 16 MB
        !           181:  * then DMA_BOUNCE_LOW will be used.
        !           182:  *
        !           183:  * isaphysmem is the address of this physical contiguous low memory.
        !           184:  * isaphysmempgs is the number of pages allocated.
        !           185:  */
        !           186:
        !           187: #ifndef DMA_BOUNCE
        !           188: #define        DMA_BOUNCE      48              /* number of pages if memory > 16M */
        !           189: #endif
        !           190:
        !           191: #ifndef DMA_BOUNCE_LOW
        !           192: #define        DMA_BOUNCE_LOW  16              /* number of pages if memory <= 16M */
        !           193: #endif
        !           194:
        !           195: extern vaddr_t isaphysmem;
        !           196: extern int isaphysmempgs;
        !           197:
        !           198:
        !           199: /*
        !           200:  * Variables and macros to deal with the ISA I/O hole.
        !           201:  * XXX These should be converted to machine- and bus-mapping-independent
        !           202:  * function definitions, invoked through the softc.
        !           203:  */
        !           204:
        !           205: extern u_long atdevbase;           /* kernel virtual address of "hole" */
        !           206:
        !           207: /*
        !           208:  * Given a kernel virtual address for some location
        !           209:  * in the "hole" I/O space, return a physical address.
        !           210:  */
        !           211: #define ISA_PHYSADDR(v) ((void *) ((u_long)(v) - atdevbase + IOM_BEGIN))
        !           212:
        !           213: /*
        !           214:  * Given a physical address in the "hole",
        !           215:  * return a kernel virtual address.
        !           216:  */
        !           217: #define ISA_HOLE_VADDR(p)  ((void *) ((u_long)(p) - IOM_BEGIN + atdevbase))
        !           218:
        !           219: #endif /* _I386_ISA_MACHDEP_H_ XXX */

CVSweb