[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

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