3 * This file is subject to the terms and conditions of the GNU General Public
4 * License. See the file "COPYING" in the main directory of this archive
7 * Copyright (C) 1992-1997,2000-2003 Silicon Graphics, Inc. All rights reserved.
9 #ifndef _ASM_IA64_SN_IOGRAPH_H
10 #define _ASM_IA64_SN_IOGRAPH_H
13 * During initialization, platform-dependent kernel code establishes some
14 * basic elements of the hardware graph. This file contains edge and
15 * info labels that are used across various platforms -- it serves as an
20 #define EDGE_LBL_BUS "bus"
21 #define EDGE_LBL_CONN ".connection"
22 #define EDGE_LBL_ECP "ecp" /* EPP/ECP plp */
23 #define EDGE_LBL_ECPP "ecpp"
24 #define EDGE_LBL_GUEST ".guest" /* For IOC3 */
25 #define EDGE_LBL_HOST ".host" /* For IOC3 */
26 #define EDGE_LBL_PERFMON "mon"
27 #define EDGE_LBL_USRPCI "usrpci"
28 #define EDGE_LBL_VME "vmebus"
29 #define EDGE_LBL_BLOCK "block"
30 #define EDGE_LBL_BOARD "board"
31 #define EDGE_LBL_CHAR "char"
32 #define EDGE_LBL_CONTROLLER "controller"
33 #define EDGE_LBL_CPU "cpu"
34 #define EDGE_LBL_CPUNUM "cpunum"
35 #define EDGE_LBL_DIRECT "direct"
36 #define EDGE_LBL_DISABLED "disabled"
37 #define EDGE_LBL_DISK "disk"
38 #define EDGE_LBL_DMA_ENGINE "dma_engine" /* Only available on
40 #define EDGE_LBL_NET "net" /* all nw. devs */
41 #define EDGE_LBL_EF "ef" /* For if_ef ethernet */
42 #define EDGE_LBL_ET "et" /* For if_ee ethernet */
43 #define EDGE_LBL_EC "ec" /* For if_ec2 ether */
44 #define EDGE_LBL_ECF "ec" /* For if_ecf enet */
45 #define EDGE_LBL_EM "ec" /* For O2 ether */
46 #define EDGE_LBL_IPG "ipg" /* For IPG FDDI */
47 #define EDGE_LBL_XPI "xpi" /* For IPG FDDI */
48 #define EDGE_LBL_HIP "hip" /* For HIPPI */
49 #define EDGE_LBL_GSN "gsn" /* For GSN */
50 #define EDGE_LBL_ATM "atm" /* For ATM */
51 #define EDGE_LBL_FXP "fxp" /* For FXP ether */
52 #define EDGE_LBL_EP "ep" /* For eplex ether */
53 #define EDGE_LBL_VFE "vfe" /* For VFE ether */
54 #define EDGE_LBL_GFE "gfe" /* For GFE ether */
55 #define EDGE_LBL_RNS "rns" /* RNS PCI FDDI card */
56 #define EDGE_LBL_MTR "mtr" /* MTR PCI 802.5 card */
57 #define EDGE_LBL_FV "fv" /* FV VME 802.5 card */
58 #define EDGE_LBL_GTR "gtr" /* GTR GIO 802.5 card */
59 #define EDGE_LBL_ISDN "isdn" /* Digi PCI ISDN-BRI card */
61 #define EDGE_LBL_EISA "eisa"
62 #define EDGE_LBL_ENET "ethernet"
63 #define EDGE_LBL_FLOPPY "floppy"
64 #define EDGE_LBL_PFD "pfd" /* For O2 pfd floppy */
65 #define EDGE_LBL_FOP "fop" /* Fetchop pseudo device */
66 #define EDGE_LBL_GIO "gio"
67 #define EDGE_LBL_HEART "heart" /* For RACER */
68 #define EDGE_LBL_HPC "hpc"
69 #define EDGE_LBL_GFX "gfx"
70 #define EDGE_LBL_HUB "hub" /* For SN0 */
71 #define EDGE_LBL_HW "hw"
72 #define EDGE_LBL_SYNERGY "synergy" /* For SNIA only */
73 #define EDGE_LBL_IBUS "ibus" /* For EVEREST */
74 #define EDGE_LBL_INTERCONNECT "link"
75 #define EDGE_LBL_IO "io"
76 #define EDGE_LBL_IO4 "io4" /* For EVEREST */
77 #define EDGE_LBL_IOC3 "ioc3"
78 #define EDGE_LBL_LUN "lun"
79 #define EDGE_LBL_LINUX "linux"
80 #define EDGE_LBL_LINUX_BUS EDGE_LBL_LINUX "/bus/pci-x"
81 #define EDGE_LBL_MACE "mace" /* O2 mace */
82 #define EDGE_LBL_MACHDEP "machdep" /* Platform depedent devices */
83 #define EDGE_LBL_MASTER ".master"
84 #define EDGE_LBL_MEMORY "memory"
85 #define EDGE_LBL_META_ROUTER "metarouter"
86 #define EDGE_LBL_MIDPLANE "midplane"
87 #define EDGE_LBL_MODULE "module"
88 #define EDGE_LBL_NODE "node"
89 #define EDGE_LBL_NODENUM "nodenum"
90 #define EDGE_LBL_NVRAM "nvram"
91 #define EDGE_LBL_PARTITION "partition"
92 #define EDGE_LBL_PCI "pci"
93 #define EDGE_LBL_PCIX "pci-x"
94 #define EDGE_LBL_PCIX_0 EDGE_LBL_PCIX "/0"
95 #define EDGE_LBL_PCIX_1 EDGE_LBL_PCIX "/1"
96 #define EDGE_LBL_PORT "port"
97 #define EDGE_LBL_PROM "prom"
98 #define EDGE_LBL_RACK "rack"
99 #define EDGE_LBL_RDISK "rdisk"
100 #define EDGE_LBL_REPEATER_ROUTER "repeaterrouter"
101 #define EDGE_LBL_ROUTER "router"
102 #define EDGE_LBL_RPOS "bay" /* Position in rack */
103 #define EDGE_LBL_SCSI "scsi"
104 #define EDGE_LBL_SCSI_CTLR "scsi_ctlr"
105 #define EDGE_LBL_SLOT "slot"
106 #define EDGE_LBL_TAPE "tape"
107 #define EDGE_LBL_TARGET "target"
108 #define EDGE_LBL_UNKNOWN "unknown"
109 #define EDGE_LBL_VOLUME "volume"
110 #define EDGE_LBL_VOLUME_HEADER "volume_header"
111 #define EDGE_LBL_XBOW "xbow"
112 #define EDGE_LBL_XIO "xio"
113 #define EDGE_LBL_XSWITCH ".xswitch"
114 #define EDGE_LBL_XTALK "xtalk"
115 #define EDGE_LBL_XWIDGET "xwidget"
116 #define EDGE_LBL_ELSC "elsc"
117 #define EDGE_LBL_L1 "L1"
118 #define EDGE_LBL_MADGE_TR "Madge-tokenring"
119 #define EDGE_LBL_XPLINK "xplink" /* Cross partition */
120 #define EDGE_LBL_XPLINK_NET "net" /* XP network devs */
121 #define EDGE_LBL_XPLINK_RAW "raw" /* XP Raw devs */
122 #define EDGE_LBL_SLAB "slab" /* Slab of a module */
123 #define EDGE_LBL_XPLINK_KERNEL "kernel" /* XP kernel devs */
124 #define EDGE_LBL_XPLINK_ADMIN "admin" /* Partition admin */
125 #define EDGE_LBL_KAIO "kaio" /* Kernel async i/o poll */
126 #define EDGE_LBL_RPS "rps" /* redundant power supply */
127 #define EDGE_LBL_XBOX_RPS "xbox_rps" /* redundant power supply for xbox unit */
128 #define EDGE_LBL_IOBRICK "iobrick"
129 #define EDGE_LBL_PBRICK "Pbrick"
130 #define EDGE_LBL_PEBRICK "PEbrick"
131 #define EDGE_LBL_PXBRICK "PXbrick"
132 #define EDGE_LBL_IXBRICK "IXbrick"
133 #define EDGE_LBL_IBRICK "Ibrick"
134 #define EDGE_LBL_XBRICK "Xbrick"
135 #define EDGE_LBL_CGBRICK "CGbrick"
136 #define EDGE_LBL_CPUBUS "cpubus" /* CPU Interfaces (SysAd) */
138 /* vertex info labels in hwgraph */
139 #define INFO_LBL_CNODEID "_cnodeid"
140 #define INFO_LBL_CONTROLLER_NAME "_controller_name"
141 #define INFO_LBL_CPUBUS "_cpubus"
142 #define INFO_LBL_CPUID "_cpuid"
143 #define INFO_LBL_CPU_INFO "_cpu"
144 #define INFO_LBL_DETAIL_INVENT "_detail_invent" /* inventory data*/
145 #define INFO_LBL_DEVICE_DESC "_device_desc"
146 #define INFO_LBL_DIAGVAL "_diag_reason" /* Reason disabled */
147 #define INFO_LBL_DKIOTIME "_dkiotime"
148 #define INFO_LBL_DRIVER "_driver" /* points to attached device_driver_t */
149 #define INFO_LBL_ELSC "_elsc"
150 #define INFO_LBL_SUBCH "_subch" /* system controller subchannel */
151 #define INFO_LBL_L1SCP "_l1scp" /* points to l1sc_t */
152 #define INFO_LBL_FC_PORTNAME "_fc_portname"
153 #define INFO_LBL_GIOIO "_gioio"
154 #define INFO_LBL_GFUNCS "_gioio_ops" /* ops vector for gio providers */
155 #define INFO_LBL_HUB_INFO "_hubinfo"
156 #define INFO_LBL_HWGFSLIST "_hwgfs_list"
157 #define INFO_LBL_TRAVERSE "_hwg_traverse" /* hwgraph traverse function */
158 #define INFO_LBL_INVENT "_invent" /* inventory data */
159 #define INFO_LBL_MLRESET "_mlreset" /* present if device preinitialized */
160 #define INFO_LBL_MODULE_INFO "_module" /* module data ptr */
161 #define INFO_LBL_MONDATA "_mon" /* monitor data ptr */
162 #define INFO_LBL_MDPERF_DATA "_mdperf" /* mdperf monitoring*/
163 #define INFO_LBL_NIC "_nic"
164 #define INFO_LBL_NODE_INFO "_node"
165 #define INFO_LBL_PCIBR_HINTS "_pcibr_hints"
166 #define INFO_LBL_PCIIO "_pciio"
167 #define INFO_LBL_PFUNCS "_pciio_ops" /* ops vector for gio providers */
168 #define INFO_LBL_PERMISSIONS "_permissions" /* owner, uid, gid */
169 #define INFO_LBL_ROUTER_INFO "_router"
170 #define INFO_LBL_SUBDEVS "_subdevs" /* subdevice enable bits */
171 #define INFO_LBL_VME_FUNCS "_vmeio_ops" /* ops vector for VME providers */
172 #define INFO_LBL_XSWITCH "_xswitch"
173 #define INFO_LBL_XSWITCH_ID "_xswitch_id"
174 #define INFO_LBL_XSWITCH_VOL "_xswitch_volunteer"
175 #define INFO_LBL_XFUNCS "_xtalk_ops" /* ops vector for gio providers */
176 #define INFO_LBL_XWIDGET "_xwidget"
177 #define INFO_LBL_GRIO_DSK "_grio_disk" /* guaranteed rate I/O */
178 #define INFO_LBL_ASYNC_ATTACH "_async_attach" /* parallel attachment */
179 #define INFO_LBL_GFXID "_gfxid" /* gfx pipe ID #s */
180 /* Device/Driver Admin directive labels */
181 #define ADMIN_LBL_INTR_TARGET "INTR_TARGET" /* Target cpu for device interrupts*/
182 #define ADMIN_LBL_INTR_SWLEVEL "INTR_SWLEVEL" /* Priority level of the ithread */
184 #define ADMIN_LBL_DMATRANS_NODE "PCIBUS_DMATRANS_NODE" /* Node used for
188 #define ADMIN_LBL_DISABLED "DISABLE" /* Device has been disabled */
189 #define ADMIN_LBL_DETACH "DETACH" /* Device has been detached */
191 #define ADMIN_LBL_THREAD_PRI "thread_priority"
192 /* Driver adminstrator
196 #define ADMIN_LBL_THREAD_CLASS "thread_class"
197 /* Driver adminstrator
202 /* Special reserved info labels (also hwgfs attributes) */
203 #define _DEVNAME_ATTR "_devname" /* device name */
204 #define _DRIVERNAME_ATTR "_drivername" /* driver name */
205 #define _INVENT_ATTR "_inventory" /* device inventory data */
206 #define _MASTERNODE_ATTR "_masternode" /* node that "controls" device */
208 /* Info labels that begin with '_' cannot be overwritten by an attr_set call */
209 #define INFO_LBL_RESERVED(name) ((name)[0] == '_')
211 #if defined(__KERNEL__)
212 void init_all_devices(void);
213 #endif /* __KERNEL__ */
215 #include <asm/sn/xtalk/xbow.h> /* For get MAX_PORT_NUM */
217 int io_brick_map_widget(int, int);
218 int io_path_map_widget(vertex_hdl_t);
221 * Map a brick's widget number to a meaningful int
224 struct io_brick_map_s {
225 int ibm_type; /* brick type */
226 int ibm_map_wid[MAX_PORT_NUM]; /* wid to int map */
230 #endif /* _ASM_IA64_SN_IOGRAPH_H */