1 /* -*- mode: c; c-basic-offset: 8 -*- */
2 
3 /* Platform specific MCA defines */
4 #ifndef _ASM_X86_MCA_H
5 #define _ASM_X86_MCA_H
6 
7 /* Maximal number of MCA slots - actually, some machines have less, but
8  * they all have sufficient number of POS registers to cover 8.
9  */
10 #define MCA_MAX_SLOT_NR  8
11 
12 /* Most machines have only one MCA bus.  The only multiple bus machines
13  * I know have at most two */
14 #define MAX_MCA_BUSSES 2
15 
16 #define MCA_PRIMARY_BUS		0
17 #define MCA_SECONDARY_BUS	1
18 
19 /* Dummy slot numbers on primary MCA for integrated functions */
20 #define MCA_INTEGSCSI	(MCA_MAX_SLOT_NR)
21 #define MCA_INTEGVIDEO	(MCA_MAX_SLOT_NR+1)
22 #define MCA_MOTHERBOARD (MCA_MAX_SLOT_NR+2)
23 
24 /* Dummy POS values for integrated functions */
25 #define MCA_DUMMY_POS_START	0x10000
26 #define MCA_INTEGSCSI_POS	(MCA_DUMMY_POS_START+1)
27 #define MCA_INTEGVIDEO_POS	(MCA_DUMMY_POS_START+2)
28 #define MCA_MOTHERBOARD_POS	(MCA_DUMMY_POS_START+3)
29 
30 /* MCA registers */
31 
32 #define MCA_MOTHERBOARD_SETUP_REG	0x94
33 #define MCA_ADAPTER_SETUP_REG		0x96
34 #define MCA_POS_REG(n)			(0x100+(n))
35 
36 #define MCA_ENABLED	0x01	/* POS 2, set if adapter enabled */
37 
38 /* Max number of adapters, including both slots and various integrated
39  * things.
40  */
41 #define MCA_NUMADAPTERS (MCA_MAX_SLOT_NR+3)
42 
43 #endif /* _ASM_X86_MCA_H */
44