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

Annotation of sys/arch/amd64/include/isa_machdep.h, Revision 1.1

1.1     ! nbrk        1: /*     $OpenBSD: isa_machdep.h,v 1.6 2006/03/01 21:51:39 deraadt Exp $ */
        !             2: /*     $NetBSD: isa_machdep.h,v 1.2 2003/05/09 23:51:28 fvdl Exp $     */
        !             3:
        !             4: /*-
        !             5:  * Copyright (c) 1996, 1997, 1998 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: #include <dev/isa/isadmavar.h>
        !            85:
        !            86: /*
        !            87:  * ISA can only DMA to 0-16M.
        !            88:  */
        !            89: #define        ISA_DMA_BOUNCE_THRESHOLD        0x00ffffff
        !            90:
        !            91: /*
        !            92:  * XXX THIS FILE IS A MESS.  copyright: berkeley's probably.
        !            93:  * contents from isavar.h and isareg.h, mostly the latter.
        !            94:  * perhaps charles's?
        !            95:  *
        !            96:  * copyright from berkeley's isa.h which is now dev/isa/isareg.h.
        !            97:  */
        !            98:
        !            99: /*
        !           100:  * Types provided to machine-independent ISA code.
        !           101:  */
        !           102:
        !           103: typedef void *isa_chipset_tag_t;
        !           104:
        !           105: struct device;                 /* XXX */
        !           106: struct isabus_attach_args;     /* XXX */
        !           107:
        !           108: /*
        !           109:  * Functions provided to machine-independent ISA code.
        !           110:  */
        !           111: void   isa_attach_hook(struct device *, struct device *,
        !           112:            struct isabus_attach_args *);
        !           113: int    isa_intr_alloc(isa_chipset_tag_t, int, int, int *);
        !           114: void   *isa_intr_establish(isa_chipset_tag_t ic, int irq, int type,
        !           115:            int level, int (*ih_fun)(void *), void *ih_arg, char *);
        !           116: void   isa_intr_disestablish(isa_chipset_tag_t ic, void *handler);
        !           117: int    isa_mem_alloc(bus_space_tag_t, bus_size_t, bus_size_t,
        !           118:            bus_addr_t, int, bus_addr_t *, bus_space_handle_t *);
        !           119: void   isa_mem_free(bus_space_tag_t, bus_space_handle_t, bus_size_t);
        !           120:
        !           121: int isa_intr_check(isa_chipset_tag_t, int, int);
        !           122:
        !           123: /*
        !           124:  * for ACPI code
        !           125:  */
        !           126:
        !           127: void   isa_reinit_irq(void);
        !           128:
        !           129: /*
        !           130:  * ALL OF THE FOLLOWING ARE MACHINE-DEPENDENT, AND SHOULD NOT BE USED
        !           131:  * BY PORTABLE CODE.
        !           132:  */
        !           133:
        !           134: extern struct x86_bus_dma_tag isa_bus_dma_tag;
        !           135:
        !           136: /*
        !           137:  * Cookie used by ISA dma.  A pointer to one of these it stashed in
        !           138:  * the DMA map.
        !           139:  */
        !           140: struct x86_isa_dma_cookie {
        !           141:        int     id_flags;               /* flags; see below */
        !           142:
        !           143:        void    *id_origbuf;            /* pointer to orig buffer if
        !           144:                                           bouncing */
        !           145:        bus_size_t id_origbuflen;       /* ...and size */
        !           146:
        !           147:        void    *id_bouncebuf;          /* pointer to the bounce buffer */
        !           148:        bus_size_t id_bouncebuflen;     /* ...and size */
        !           149:        int     id_nbouncesegs;         /* number of valid bounce segs */
        !           150:        bus_dma_segment_t id_bouncesegs[0]; /* array of bounce buffer
        !           151:                                               physical memory segments */
        !           152: };
        !           153:
        !           154: /* id_flags */
        !           155: #define        ID_MIGHT_NEED_BOUNCE    0x01    /* map could need bounce buffers */
        !           156: #define        ID_HAS_BOUNCE           0x02    /* map currently has bounce buffers */
        !           157: #define        ID_IS_BOUNCING          0x04    /* map is bouncing current xfer */
        !           158:
        !           159:
        !           160:
        !           161: /*
        !           162:  * XXX Various seemingly PC-specific constants, some of which may be
        !           163:  * unnecessary anyway.
        !           164:  */
        !           165:
        !           166: /*
        !           167:  * RAM Physical Address Space (ignoring the above mentioned "hole")
        !           168:  */
        !           169: #define        RAM_BEGIN       0x0000000       /* Start of RAM Memory */
        !           170: #define        RAM_END         0x1000000       /* End of RAM Memory */
        !           171: #define        RAM_SIZE        (RAM_END - RAM_BEGIN)
        !           172:
        !           173: /*
        !           174:  * Oddball Physical Memory Addresses
        !           175:  */
        !           176: #define        COMPAQ_RAMRELOC 0x80c00000      /* Compaq RAM relocation/diag */
        !           177: #define        COMPAQ_RAMSETUP 0x80c00002      /* Compaq RAM setup */
        !           178: #define        WEITEK_FPU      0xC0000000      /* WTL 2167 */
        !           179: #define        CYRIX_EMC       0xC0000000      /* Cyrix EMC */
        !           180:
        !           181: /*
        !           182:  * stuff that used to be in pccons.c
        !           183:  */
        !           184: #define        MONO_BASE       0x3B4
        !           185: #define        MONO_BUF        0xB0000
        !           186: #define        CGA_BASE        0x3D4
        !           187: #define        CGA_BUF         0xB8000
        !           188:
        !           189: /*
        !           190:  * Variables and macros to deal with the ISA I/O hole.
        !           191:  * XXX These should be converted to machine- and bus-mapping-independent
        !           192:  * function definitions, invoked through the softc.
        !           193:  */
        !           194:
        !           195: extern u_long atdevbase;           /* kernel virtual address of "hole" */
        !           196:
        !           197: /*
        !           198:  * Given a kernel virtual address for some location
        !           199:  * in the "hole" I/O space, return a physical address.
        !           200:  */
        !           201: #define ISA_PHYSADDR(v) ((void *) ((u_long)(v) - atdevbase + IOM_BEGIN))
        !           202:
        !           203: /*
        !           204:  * Given a physical address in the "hole",
        !           205:  * return a kernel virtual address.
        !           206:  */
        !           207: #define ISA_HOLE_VADDR(p)  ((void *) ((u_long)(p) - IOM_BEGIN + atdevbase))
        !           208:
        !           209: #endif /* _I386_ISA_MACHDEP_H_ XXX */

CVSweb