]> CyberLeo.Net >> Repos - FreeBSD/releng/9.2.git/blob - sys/pc98/cbus/cbus.h
- Copy stable/9 to releng/9.2 as part of the 9.2-RELEASE cycle.
[FreeBSD/releng/9.2.git] / sys / pc98 / cbus / cbus.h
1 /*-
2  * Copyright (c) 1990 The Regents of the University of California.
3  * All rights reserved.
4  *
5  * This code is derived from software contributed to Berkeley by
6  * William Jolitz.
7  *
8  * Redistribution and use in source and binary forms, with or without
9  * modification, are permitted provided that the following conditions
10  * are met:
11  * 1. Redistributions of source code must retain the above copyright
12  *    notice, this list of conditions and the following disclaimer.
13  * 2. Redistributions in binary form must reproduce the above copyright
14  *    notice, this list of conditions and the following disclaimer in the
15  *    documentation and/or other materials provided with the distribution.
16  * 4. Neither the name of the University nor the names of its contributors
17  *    may be used to endorse or promote products derived from this software
18  *    without specific prior written permission.
19  *
20  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
21  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
24  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
25  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
26  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
27  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
28  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
29  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
30  * SUCH DAMAGE.
31  *
32  *      from: @(#)isa.h 5.7 (Berkeley) 5/9/91
33  * $FreeBSD$
34  */
35
36 #ifndef _PC98_PC98_PC98_H_
37 #define _PC98_PC98_PC98_H_
38
39 /* BEWARE:  Included in both assembler and C code */
40
41 /*
42  * PC98 Bus conventions
43  * modified for PC9801 by A.Kojima F.Ukai M.Ishii 
44  *                      Kyoto University Microcomputer Club (KMC)
45  */
46
47 /*
48  * Input / Output Port Assignments
49  */
50 #ifndef IO_ISABEGIN
51 #define IO_ISABEGIN     0x000           /* 0x000 - Beginning of I/O Registers */
52
53 /* PC98 IO address ... very dirty (^_^; */
54
55 #define IO_ICU1         0x000           /* 8259A Interrupt Controller #1 */
56 #define IO_ICU2         0x008           /* 8259A Interrupt Controller #2 */
57 #define IO_RTC          0x020           /* 4990A RTC */
58 #define IO_SYSPORT      0x031           /* 8255A System Port */
59 #define IO_KBD          0x041           /* 8251A Keyboard */
60 #define IO_COM2         0x0B1           /* 8251A RS232C serial I/O (ext) */
61 #define IO_COM3         0x0B9           /* 8251A RS232C serial I/O (ext) */
62 #define IO_FDPORT       0x0BE           /* FD I/F port (1M<->640K,EMTON) */
63 #define IO_WD1_EPSON    0x80            /* 386note Hard disk controller */
64 #define IO_ISAEND       0xFFFF          /* - 0x3FF End of I/O Registers */
65 #endif /* !IO_ISABEGIN */
66
67 /*
68  * Input / Output Port Sizes - these are from several sources, and tend
69  * to be the larger of what was found, ie COM ports can be 4, but some
70  * boards do not fully decode the address, thus 8 ports are used.
71  */
72 #ifndef IO_ISASIZES
73 #define IO_ISASIZES
74
75 #define IO_KBDSIZE      16              /* 8042 Keyboard controllers */
76 #define IO_LPTSIZE      8               /* LPT controllers, some use only 4 */
77 #define IO_LPTSIZE_EXTENDED     8       /* "Extended" LPT controllers */
78 #define IO_LPTSIZE_NORMAL       4       /* "Normal" LPT controllers */
79
80 #endif /* !IO_ISASIZES */
81
82 /*
83  * Input / Output Memory Physical Addresses
84  */
85 #ifndef IOM_BEGIN
86 #define IOM_BEGIN       0x0A0000        /* Start of I/O Memory "hole" */
87 #define IOM_END         0x100000        /* End of I/O Memory "hole" */
88 #define IOM_SIZE        (IOM_END - IOM_BEGIN)
89 #endif /* !IOM_BEGIN */
90
91 /*
92  * RAM Physical Address Space (ignoring the above mentioned "hole")
93  */
94 #ifndef RAM_BEGIN
95 #define RAM_BEGIN       0x0000000       /* Start of RAM Memory */
96 #ifdef  EPSON_BOUNCEDMA
97 #define RAM_END         0x0f00000       /* End of EPSON GR?? RAM Memory */
98 #else
99 #define RAM_END         0x1000000       /* End of RAM Memory */
100 #endif
101 #define RAM_SIZE        (RAM_END - RAM_BEGIN)
102 #endif /* !RAM_BEGIN */
103
104 #endif /* !_PC98_PC98_PC98_H_ */