Lines Matching +full:board +full:- +full:2
8 * Copyright (C) 1992 - 1997, 1999, 2000 Silicon Graphics, Inc.
76 * 1 NODE brd, 2 Router brd (1 8p, 1 meta), 6 Widgets,
77 * 2 Midplanes assuming no pci card cages
79 #define MAX_SLOTS_PER_NODE (1 + 2 + 6 + 2)
85 /* lboard_t->brd_flags fields */
99 /* klinfo->flags fields */
108 #define IS_CONSOLE_IOC3(i) ((((klinfo_t *)i)->flags) & KLINFO_INSTALL)
121 #define ERRINFO_STRUCT 2
162 (KL_CONFIG_HDR(_nasid)->ch_board_info)
164 (KL_CONFIG_HDR(_nasid)->ch_board_info = (_off))
167 (lboard_t *)((KL_CONFIG_HDR(_nasid)->ch_board_info) ? \
168 NODE_OFFSET_TO_K1((_nasid), KL_CONFIG_HDR(_nasid)->ch_board_info) : \
170 #define KL_CONFIG_MAGIC(_nasid) (KL_CONFIG_HDR(_nasid)->ch_magic)
173 (KL_CONFIG_HDR(_nasid)->ch_magic == KLCFGINFO_MAGIC)
176 (KL_CONFIG_HDR(_nasid)->ch_magic = KLCFGINFO_MAGIC)
178 /* --- New Macros for the changed kl_config_hdr_t structure --- */
181 ((unsigned long)_k + (_k->ch_malloc_hdr_off)))
186 ((unsigned long)_k + (_k->ch_cons_off)))
190 /* ------------------------------------------------------------- */
195 #define KL_CONFIG_BOARD_NASID(_brd) ((_brd)->brd_nasid)
196 #define KL_CONFIG_BOARD_SET_NEXT(_brd, _off) ((_brd)->brd_next = (_off))
198 #define KL_CONFIG_DUPLICATE_BOARD(_brd) ((_brd)->brd_flags & DUPLICATE_BOARD)
201 ((_xbowp)->xbow_port_info[(_link) - BASE_XBOW_PORT].port_flag & XBOW_PORT_HUB)
203 ((_xbowp)->xbow_port_info[(_link) - BASE_XBOW_PORT].port_flag & XBOW_PORT_IO)
206 ((_xbowp)->xbow_port_info[(_link) - BASE_XBOW_PORT].port_flag & XBOW_PORT_ENABLE)
208 ((_xbowp)->xbow_port_info[(_link) - BASE_XBOW_PORT].port_nasid)
218 * The KLCONFIG area is organized as a LINKED LIST of BOARDs. A BOARD
221 * node.(TBD - Need a way to treat ROUTER boards.)
223 * There are 2 different structures to represent these boards -
224 * lboard - Local board, rboard - remote board. These 2 structures
227 * is used to find out its type - no unions are used.
228 * If it is a lboard, then the config info of this board will be found
238 * First board info on the remote node. The remote node list is
245 +------------+ +------------+ +------------+ +------------+
246 | lboard | +-->| lboard | +-->| rboard | +-->| lboard |
247 +------------+ | +------------+ | +------------+ | +------------+
248 | board info | | | board info | | |errinfo,bptr| | | board info |
249 +------------+ | +------------+ | +------------+ | +------------+
250 | offset |--+ | offset |--+ | offset |--+ |offset=NULL |
251 +------------+ +------------+ +------------+ +------------+
254 +------------+
255 | board info |
256 +------------+ +--------------------------------+
257 | compt 1 |------>| type, rev, diaginfo, size ... | (CPU)
258 +------------+ +--------------------------------+
259 | compt 2 |--+
260 +------------+ | +--------------------------------+
261 | ... | +--->| type, rev, diaginfo, size ... | (MEM_BANK)
262 +------------+ +--------------------------------+
263 | errinfo |--+
264 +------------+ | +--------------------------------+
265 +--->|r/l brd errinfo,compt err flags |
266 +--------------------------------+
269 * Each BOARD consists of COMPONENTs and the BOARD structure has
273 * BOARD with arbitrary COMPONENT composition.
275 * The ERRORINFO part of each BOARD has error information
276 * that describes errors about the BOARD itself. It also has flags to
277 * indicate the COMPONENT(s) on the board that have errors. The error
282 * BOARD has pointers(offset) to the ERRORINFO structure. The rboard
291 * Like BOARD structures, REMOTE ERRINFO structures can be built locally
297 * be used. If the NODE is non-zero (remote) then each offset should
315 #define KL_CPU_NONE (-1) /* no cpu present in slot */
318 * IP27 BOARD classes
323 #define KLCLASS_NODE 0x10 /* CPU, Memory and HUB board */
326 and the non-graphics widget boards */
327 #define KLCLASS_ROUTER 0x30 /* Router board */
328 #define KLCLASS_MIDPLANE 0x40 /* We need to treat this as a board
344 * IP27 board types
352 #define KLTYPE_IP27 (KLCLASS_CPU | 0x1) /* 2 CPUs(R10K) per board */
370 #define KLTYPE_GSN_A (KLCLASS_IO | 0xC) /* Main GSN board */
371 #define KLTYPE_GSN_B (KLCLASS_IO | 0xD) /* Auxiliary GSN board */
396 * out the board name from the NIC string. For values less than
397 * 8 the name of the board needs to be hard coded in a few places.
406 #define IS_MIO_PRESENT(l) ((l->brd_type == KLTYPE_BASEIO) && \
407 (l->brd_flags & SECOND_NIC_PRESENT))
408 #define IS_MIO_IOC3(l, n) (IS_MIO_PRESENT(l) && (n > 2))
411 * board structures
417 #define REMOTE_BOARD 2
419 #define LBOARD_STRUCT_VERSION 2
422 klconf_off_t brd_next; /* Next BOARD */
426 unsigned char brd_brevision; /* board revision */
427 unsigned char brd_promver; /* board prom version, if any */
440 klconf_off_t brd_errinfo; /* Board's error information */
443 confidence_t brd_confidence; /* confidence that the board is bad */
444 nasid_t brd_owner; /* who owns this board */
452 * klconfig board traversal and error structure extraction defines.
455 #define BOARD_SLOT(_brd) ((_brd)->brd_slot)
457 #define KLCF_CLASS(_brd) KLCLASS((_brd)->brd_type)
458 #define KLCF_TYPE(_brd) KLTYPE((_brd)->brd_type)
459 #define KLCF_REMOTE(_brd) (((_brd)->struct_type & LOCAL_BOARD) ? 0 : 1)
460 #define KLCF_NUM_COMPS(_brd) ((_brd)->brd_numcompts)
461 #define KLCF_MODULE_ID(_brd) ((_brd)->brd_module)
464 ((_brd)->brd_next ? \
465 (lboard_t *)(NODE_OFFSET_TO_K1(NASID_GET(_brd), (_brd)->brd_next)):\
469 (_brd)->brd_compts[(_ndx)]))
472 (NODE_OFFSET_TO_K1(NASID_GET(_brd), (_comp)->errinfo))
474 #define KLCF_COMP_TYPE(_comp) ((_comp)->struct_type)
475 #define KLCF_BRIDGE_W_ID(_comp) ((_comp)->physid) /* Widget ID */
495 unsigned char widid; /* Widget id - if applicable */
496 nasid_t nasid; /* node number - from parent */
505 #define KLCONFIG_INFO_ENABLED(_i) ((_i)->flags & KLINFO_ENABLE)
517 #define KLSTRUCT_HUB 2
558 #define IP27_HUB_INDEX 2
563 #define BASEIO_SCSI1_INDEX 2
603 #define CPU_STRUCT_VERSION 2
620 #define MEMORY_STRUCT_VERSION 2
631 ((_info)->membnk_bnksz[(_bank)])
636 ((_info)->membnk_attr & (MEMBNK_PREMIUM << (_bank)))
654 KLCF_COMP(_l, _l->brd_numcompts))
672 #define BRIDGE_STRUCT_VERSION 2
678 pci_t pci_specific ; /* PCI Board config info */
683 #define MAX_IOC3_TTY 2
698 typedef struct klvmeb_s { /* VME BRIDGE - PCI CTLR */
701 klconf_off_t vmeb_brdinfo[MAX_VME_SLOTS] ; /* VME Board config info */
704 typedef struct klvmed_s { /* VME DEVICE - VME BOARD */
707 klconf_off_t vmed_brdinfo[MAX_VME_SLOTS] ; /* VME Board config info */
710 #define ROUTER_VECTOR_VERS 2
712 /* XXX - Don't we need the number of ports here?!? */
751 typedef struct kltpu_s { /* TPU board */
756 typedef struct klgsn_s { /* GSN board */
846 * TBD - Can the ARCS and device driver related info also be included in the
852 * TBD - Allocation issues.