trvial
[unix-history] / usr / src / sys / i386 / isa / isa.h
CommitLineData
7dc7e04a
WN
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 * %sccs.include.noredist.c%
9 *
4f0cf74b 10 * @(#)isa.h 5.4 (Berkeley) %G%
7dc7e04a
WN
11 */
12
13/*
f5956f50 14 * ISA Bus conventions
7dc7e04a
WN
15 */
16
f5956f50 17#ifndef LOCORE
4f0cf74b
BJ
18unsigned char inb(), rtcin();
19void outb();
3bcbb99c 20#endif
7dc7e04a 21
7dc7e04a 22
f5956f50
BJ
23/*
24 * Input / Output Port Assignments
25 */
26
27#ifndef IO_BEGIN
28#define IO_ISABEGIN 0x000 /* 0x000 - Beginning of I/O Registers */
29
30 /* CPU Board */
31#define IO_DMA0 0x000 /* 8237A DMA Controller #1 */
32#define IO_ICU0 0x020 /* 8259A Interrupt Controller #1 */
33#define IO_TIMER0 0x040 /* 8252 Timer #1 */
34#define IO_TIMER1 0x048 /* 8252 Timer #2 */
35#define IO_KBD 0x060 /* 8042 Keyboard */
36#define IO_RTC 0x070 /* RTC */
37#define IO_NMI IO_RTC /* NMI Control */
38#define IO_DMAPG 0x080 /* DMA Page Registers */
39#define IO_ICU1 0x0A0 /* 8259A Interrupt Controller #2 */
40#define IO_DMA1 0x0C0 /* 8237A DMA Controller #2 */
41#define IO_NPX 0x0F0 /* Numeric Coprocessor */
42
43 /* Cards */
44 /* 0x100 - 0x16F Open */
45
46#define IO_WD1 0x170 /* Secondary Fixed Disk Controller */
47
48 /* 0x178 - 0x1EF Open */
49
50#define IO_WD0 0x1f0 /* Primary Fixed Disk Controller */
51#define IO_GAME 0x200 /* Game Controller */
52
53 /* 0x208 - 0x277 Open */
54
55#define IO_LPT1 0x278 /* Parallel Port #2 */
56
57 /* 0x280 - 0x2F7 Open */
58
59#define IO_COM1 0x2f8 /* COM2 i/o address */
60
61 /* 0x300 - 0x36F Open */
62
63#define IO_FD1 0x370 /* secondary base i/o address */
64#define IO_LPT0 0x378 /* Parallel Port #1 */
3bcbb99c 65
f5956f50
BJ
66 /* 0x380 - 0x3AF Open */
67
68#define IO_MDA 0x3B0 /* Monochome Adapter */
69#define IO_LPT2 0x3BC /* Monochome Adapter Printer Port */
70#define IO_VGA 0x3C0 /* E/VGA Ports */
71#define IO_CGA 0x3D0 /* CGA Ports */
72
73 /* 0x3E0 - 0x3EF Open */
74
75#define IO_FD0 0x3f0 /* primary base i/o address */
76#define IO_COM0 0x3f8 /* COM1 i/o address */
77
78#define IO_ISAEND 0x3FF /* - 0x3FF End of I/O Registers */
79#endif IO_ISABEGIN
80
81/*
82 * Input / Output Memory Physical Addresses
83 */
84
85#ifdef IOM_BEGIN
86#define IOM_BEGIN 0xa0000 /* Start of I/O Memory "hole" */
87#define IOM_END 0xFFFFF /* End of I/O Memory "hole" */
88#endif IOM_BEGIN
89
90/*
91 * RAM Physical Address Space (ignoring the above mentioned "hole")
92 */
93
94#ifdef RAM_BEGIN
95#define RAM_BEGIN 0x000000 /* Start of RAM Memory */
96#define IOM_END 0xFFFFFF /* End of RAM Memory */
97#endif IOM_BEGIN
98
99/*
100 * Oddball Physical Memory Addresses
101 */
3bcbb99c 102
f5956f50
BJ
103#define COMPAQ_RAMRELOC 0x80c00000 /* Compaq RAM relocation/diag */
104#define COMPAQ_RAMSETUP 0x80c00002 /* Compaq RAM setup */
105#define WEITEK_FPU 0xC0000000 /* WTL 2167 */
106#define CYRIX_EMC 0xC0000000 /* Cyrix EMC */