1 #ifndef __ASM_MACH_MPPARSE_H
2 #define __ASM_MACH_MPPARSE_H
6 extern int use_cyclone
;
8 #ifdef CONFIG_X86_SUMMIT_NUMA
9 extern void setup_summit(void);
11 #define setup_summit() {}
14 static inline void mpc_oem_bus_info(struct mpc_config_bus
*m
, char *name
,
15 struct mpc_config_translation
*translation
)
17 Dprintk("Bus #%d is %s\n", m
->mpc_busid
, name
);
20 static inline void mpc_oem_pci_bus(struct mpc_config_bus
*m
,
21 struct mpc_config_translation
*translation
)
25 static inline int mps_oem_check(struct mp_config_table
*mpc
, char *oem
,
28 if (!strncmp(oem
, "IBM ENSW", 8) &&
29 (!strncmp(productid
, "VIGIL SMP", 9)
30 || !strncmp(productid
, "EXA", 3)
31 || !strncmp(productid
, "RUTHLESS SMP", 12))){
32 use_cyclone
= 1; /*enable cyclone-timer*/
39 /* Hook from generic ACPI tables.c */
40 static inline int acpi_madt_oem_check(char *oem_id
, char *oem_table_id
)
42 if (!strncmp(oem_id
, "IBM", 3) &&
43 (!strncmp(oem_table_id
, "SERVIGIL", 8)
44 || !strncmp(oem_table_id
, "EXA", 3))){
45 use_cyclone
= 1; /*enable cyclone-timer*/
52 struct rio_table_hdr
{
53 unsigned char version
; /* Version number of this data structure */
54 /* Version 3 adds chassis_num & WP_index */
55 unsigned char num_scal_dev
; /* # of Scalability devices (Twisters for Vigil) */
56 unsigned char num_rio_dev
; /* # of RIO I/O devices (Cyclones and Winnipegs) */
57 } __attribute__((packed
));
60 unsigned char node_id
; /* Scalability Node ID */
61 unsigned long CBAR
; /* Address of 1MB register space */
62 unsigned char port0node
; /* Node ID port connected to: 0xFF=None */
63 unsigned char port0port
; /* Port num port connected to: 0,1,2, or 0xFF=None */
64 unsigned char port1node
; /* Node ID port connected to: 0xFF = None */
65 unsigned char port1port
; /* Port num port connected to: 0,1,2, or 0xFF=None */
66 unsigned char port2node
; /* Node ID port connected to: 0xFF = None */
67 unsigned char port2port
; /* Port num port connected to: 0,1,2, or 0xFF=None */
68 unsigned char chassis_num
; /* 1 based Chassis number (1 = boot node) */
69 } __attribute__((packed
));
72 unsigned char node_id
; /* RIO Node ID */
73 unsigned long BBAR
; /* Address of 1MB register space */
74 unsigned char type
; /* Type of device */
75 unsigned char owner_id
; /* For WPEG: Node ID of Cyclone that owns this WPEG*/
76 /* For CYC: Node ID of Twister that owns this CYC */
77 unsigned char port0node
; /* Node ID port connected to: 0xFF=None */
78 unsigned char port0port
; /* Port num port connected to: 0,1,2, or 0xFF=None */
79 unsigned char port1node
; /* Node ID port connected to: 0xFF=None */
80 unsigned char port1port
; /* Port num port connected to: 0,1,2, or 0xFF=None */
81 unsigned char first_slot
; /* For WPEG: Lowest slot number below this WPEG */
83 unsigned char status
; /* For WPEG: Bit 0 = 1 : the XAPIC is used */
84 /* = 0 : the XAPIC is not used, ie:*/
85 /* ints fwded to another XAPIC */
86 /* Bits1:7 Reserved */
87 /* For CYC: Bits0:7 Reserved */
88 unsigned char WP_index
; /* For WPEG: WPEG instance index - lower ones have */
89 /* lower slot numbers/PCI bus numbers */
90 /* For CYC: No meaning */
91 unsigned char chassis_num
; /* 1 based Chassis number */
92 /* For LookOut WPEGs this field indicates the */
93 /* Expansion Chassis #, enumerated from Boot */
94 /* Node WPEG external port, then Boot Node CYC */
95 /* external port, then Next Vigil chassis WPEG */
96 /* external port, etc. */
97 /* Shared Lookouts have only 1 chassis number (the */
98 /* first one assigned) */
99 } __attribute__((packed
));
103 CompatTwister
= 0, /* Compatibility Twister */
104 AltTwister
= 1, /* Alternate Twister of internal 8-way */
105 CompatCyclone
= 2, /* Compatibility Cyclone */
106 AltCyclone
= 3, /* Alternate Cyclone of internal 8-way */
107 CompatWPEG
= 4, /* Compatibility WPEG */
108 AltWPEG
= 5, /* Second Planar WPEG */
109 LookOutAWPEG
= 6, /* LookOut WPEG */
110 LookOutBWPEG
= 7, /* LookOut WPEG */
113 static inline int is_WPEG(struct rio_detail
*rio
){
114 return (rio
->type
== CompatWPEG
|| rio
->type
== AltWPEG
||
115 rio
->type
== LookOutAWPEG
|| rio
->type
== LookOutBWPEG
);
118 #endif /* __ASM_MACH_MPPARSE_H */