xref: /original-bsd/sys/i386/isa/isa.h (revision 3705696b)
1 /*-
2  * Copyright (c) 1990, 1993
3  *	The Regents of the University of California.  All rights reserved.
4  *
5  * This code is derived from software contributed to Berkeley by
6  * William Jolitz.
7  *
8  * %sccs.include.redist.c%
9  *
10  *	@(#)isa.h	8.1 (Berkeley) 06/11/93
11  */
12 
13 /*
14  * ISA Bus conventions
15  */
16 
17 #ifndef LOCORE
18 unsigned char inb(), rtcin();
19 void outb();
20 #endif
21 
22 /*
23  * Input / Output Port Assignments
24  */
25 
26 #ifndef IO_BEGIN
27 #define	IO_ISABEGIN	0x000		/* 0x000 - Beginning of I/O Registers */
28 
29 		/* CPU Board */
30 #define IO_DMA1		0x000		/* 8237A DMA Controller #1 */
31 #define IO_ICU1		0x020		/* 8259A Interrupt Controller #1 */
32 #define IO_TIMER1	0x040		/* 8252 Timer #1 */
33 #define IO_TIMER2	0x048		/* 8252 Timer #2 */
34 #define IO_KBD		0x060		/* 8042 Keyboard */
35 #define IO_RTC		0x070		/* RTC */
36 #define IO_NMI		IO_RTC		/* NMI Control */
37 #define IO_DMAPG	0x080		/* DMA Page Registers */
38 #define IO_ICU2		0x0A0		/* 8259A Interrupt Controller #2 */
39 #define IO_DMA2		0x0C0		/* 8237A DMA Controller #2 */
40 #define IO_NPX		0x0F0		/* Numeric Coprocessor */
41 
42 		/* Cards */
43 					/* 0x100 - 0x16F Open */
44 
45 #define IO_WD2		0x170		/* Secondary Fixed Disk Controller */
46 
47 					/* 0x178 - 0x1EF Open */
48 
49 #define IO_WD1		0x1f0		/* Primary Fixed Disk Controller */
50 #define IO_GAME		0x200		/* Game Controller */
51 
52 					/* 0x208 - 0x277 Open */
53 
54 #define IO_LPT2		0x278		/* Parallel Port #2 */
55 
56 					/* 0x280 - 0x2F7 Open */
57 
58 #define IO_COM2		0x2f8		/* COM2 i/o address */
59 
60 					/* 0x300 - 0x36F Open */
61 
62 #define IO_FD2		0x370		/* secondary base i/o address */
63 #define IO_LPT1		0x378		/* Parallel Port #1 */
64 
65 					/* 0x380 - 0x3AF Open */
66 
67 #define IO_MDA		0x3B0		/* Monochome Adapter */
68 #define IO_LPT3		0x3BC		/* Monochome Adapter Printer Port */
69 #define IO_VGA		0x3C0		/* E/VGA Ports */
70 #define IO_CGA		0x3D0		/* CGA Ports */
71 
72 					/* 0x3E0 - 0x3EF Open */
73 
74 #define IO_FD1		0x3f0		/* primary base i/o address */
75 #define IO_COM1		0x3f8		/* COM1 i/o address */
76 
77 #define	IO_ISAEND	0x3FF		/* - 0x3FF End of I/O Registers */
78 #endif	IO_ISABEGIN
79 
80 /*
81  * Input / Output Memory Physical Addresses
82  */
83 
84 #ifndef	IOM_BEGIN
85 #define	IOM_BEGIN	0xa0000		/* Start of I/O Memory "hole" */
86 #define	IOM_END		0xFFFFF		/* End of I/O Memory "hole" */
87 #endif	IOM_BEGIN
88 
89 /*
90  * RAM Physical Address Space (ignoring the above mentioned "hole")
91  */
92 
93 #ifndef	RAM_BEGIN
94 #define	RAM_BEGIN	0x000000	/* Start of RAM Memory */
95 #define	RAM_END		0xFFFFFF	/* End of RAM Memory */
96 #endif	IOM_BEGIN
97 
98 /*
99  * Oddball Physical Memory Addresses
100  */
101 #ifndef	COMPAQ_RAMRELOC
102 #define	COMPAQ_RAMRELOC	0x80c00000	/* Compaq RAM relocation/diag */
103 #define	COMPAQ_RAMSETUP	0x80c00002	/* Compaq RAM setup */
104 #define	WEITEK_FPU	0xC0000000	/* WTL 2167 */
105 #define	CYRIX_EMC	0xC0000000	/* Cyrix EMC */
106 #endif	COMPAQ_RAMRELOC
107