⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 klconfig.h

📁 linux-2.4.29操作系统的源码
💻 H
📖 第 1 页 / 共 3 页
字号:
 * That info will be part of HWGRAPH, which is an extension of the cfg_t * data structure. (ref IP27prom/cfg.h) It has to be extended to include * the IO part of the Network(TBD). * * The data structures below define the above concepts. *//* * Values for CPU types */#define KL_CPU_R4000		0x1	/* Standard R4000 */#define KL_CPU_TFP		0x2	/* TFP processor */#define	KL_CPU_R10000		0x3	/* R10000 (T5) */#define KL_CPU_NONE		(-1)	/* no cpu present in slot *//* * IP27 BOARD classes */#define KLCLASS_MASK	0xf0#define KLCLASS_NONE	0x00#define KLCLASS_NODE	0x10             /* CPU, Memory and HUB board */#define KLCLASS_CPU	KLCLASS_NODE#define KLCLASS_IO	0x20             /* BaseIO, 4 ch SCSI, ethernet, FDDI					    and the non-graphics widget boards */#define KLCLASS_ROUTER	0x30             /* Router board */#define KLCLASS_MIDPLANE 0x40            /* We need to treat this as a board                                            so that we can record error info */#define KLCLASS_GFX	0x50		/* graphics boards */#define KLCLASS_PSEUDO_GFX	0x60	/* HDTV type cards that use a gfx					 * hw ifc to xtalk and are not gfx					 * class for sw purposes */#define KLCLASS_MAX	7		/* Bump this if a new CLASS is added */#define KLTYPE_MAX	10		/* Bump this if a new CLASS is added */#define KLCLASS_UNKNOWN	0xf0#define KLCLASS(_x) ((_x) & KLCLASS_MASK)/* * IP27 board types */#define KLTYPE_MASK	0x0f#define KLTYPE_NONE	0x00#define KLTYPE_EMPTY	0x00#define KLTYPE_WEIRDCPU (KLCLASS_CPU | 0x0)#define KLTYPE_IP27	(KLCLASS_CPU | 0x1) /* 2 CPUs(R10K) per board */#define KLTYPE_WEIRDIO	(KLCLASS_IO  | 0x0)#define KLTYPE_BASEIO	(KLCLASS_IO  | 0x1) /* IOC3, SuperIO, Bridge, SCSI */#define KLTYPE_IO6	KLTYPE_BASEIO       /* Additional name */#define KLTYPE_4CHSCSI	(KLCLASS_IO  | 0x2)#define KLTYPE_MSCSI	KLTYPE_4CHSCSI      /* Additional name */#define KLTYPE_ETHERNET	(KLCLASS_IO  | 0x3)#define KLTYPE_MENET	KLTYPE_ETHERNET     /* Additional name */#define KLTYPE_FDDI  	(KLCLASS_IO  | 0x4)#define KLTYPE_UNUSED	(KLCLASS_IO  | 0x5) /* XXX UNUSED */#define KLTYPE_HAROLD   (KLCLASS_IO  | 0x6) /* PCI SHOE BOX */#define KLTYPE_PCI	KLTYPE_HAROLD#define KLTYPE_VME      (KLCLASS_IO  | 0x7) /* Any 3rd party VME card */#define KLTYPE_MIO   	(KLCLASS_IO  | 0x8)#define KLTYPE_FC    	(KLCLASS_IO  | 0x9)#define KLTYPE_LINC    	(KLCLASS_IO  | 0xA)#define KLTYPE_TPU    	(KLCLASS_IO  | 0xB) /* Tensor Processing Unit */#define KLTYPE_GSN_A   	(KLCLASS_IO  | 0xC) /* Main GSN board */#define KLTYPE_GSN_B   	(KLCLASS_IO  | 0xD) /* Auxiliary GSN board */#define KLTYPE_GFX	(KLCLASS_GFX | 0x0) /* unknown graphics type */#define KLTYPE_GFX_KONA (KLCLASS_GFX | 0x1) /* KONA graphics on IP27 */#define KLTYPE_GFX_MGRA (KLCLASS_GFX | 0x3) /* MGRAS graphics on IP27 */#define KLTYPE_WEIRDROUTER (KLCLASS_ROUTER | 0x0)#define KLTYPE_ROUTER     (KLCLASS_ROUTER | 0x1)#define KLTYPE_ROUTER2    KLTYPE_ROUTER		/* Obsolete! */#define KLTYPE_NULL_ROUTER (KLCLASS_ROUTER | 0x2)#define KLTYPE_META_ROUTER (KLCLASS_ROUTER | 0x3)#define KLTYPE_WEIRDMIDPLANE (KLCLASS_MIDPLANE | 0x0)#define KLTYPE_MIDPLANE8  (KLCLASS_MIDPLANE | 0x1) /* 8 slot backplane */#define KLTYPE_MIDPLANE    KLTYPE_MIDPLANE8#define KLTYPE_PBRICK_XBOW	(KLCLASS_MIDPLANE | 0x2)#define KLTYPE_IOBRICK		(KLCLASS_IOBRICK | 0x0)#define KLTYPE_IBRICK		(KLCLASS_IOBRICK | 0x1)#define KLTYPE_PBRICK		(KLCLASS_IOBRICK | 0x2)#define KLTYPE_XBRICK		(KLCLASS_IOBRICK | 0x3)#define KLTYPE_PBRICK_BRIDGE	KLTYPE_PBRICK/* The value of type should be more than 8 so that hinv prints * out the board name from the NIC string. For values less than * 8 the name of the board needs to be hard coded in a few places. * When bringup started nic names had not standardized and so we * had to hard code. (For people interested in history.) */#define KLTYPE_XTHD   	(KLCLASS_PSEUDO_GFX | 0x9)#define KLTYPE_UNKNOWN	(KLCLASS_UNKNOWN | 0xf)#define KLTYPE(_x) 	((_x) & KLTYPE_MASK)#define IS_MIO_PRESENT(l)	((l->brd_type == KLTYPE_BASEIO) && \				 (l->brd_flags & SECOND_NIC_PRESENT))#define IS_MIO_IOC3(l,n)	(IS_MIO_PRESENT(l) && (n > 2))/* * board structures */#define MAX_COMPTS_PER_BRD 24#define LOCAL_BOARD 1#define REMOTE_BOARD 2#define LBOARD_STRUCT_VERSION 	2typedef struct lboard_s {	klconf_off_t 	brd_next;         /* Next BOARD */	unsigned char 	struct_type;      /* type of structure, local or remote */	unsigned char 	brd_type;         /* type+class */	unsigned char 	brd_sversion;     /* version of this structure */        unsigned char 	brd_brevision;    /* board revision */        unsigned char 	brd_promver;      /* board prom version, if any */ 	unsigned char 	brd_flags;        /* Enabled, Disabled etc */	unsigned char 	brd_slot;         /* slot number */	unsigned short	brd_debugsw;      /* Debug switches */	moduleid_t	brd_module;       /* module to which it belongs */	partid_t 	brd_partition;    /* Partition number */        unsigned short 	brd_diagval;      /* diagnostic value */        unsigned short 	brd_diagparm;     /* diagnostic parameter */        unsigned char 	brd_inventory;    /* inventory history */        unsigned char 	brd_numcompts;    /* Number of components */        nic_t         	brd_nic;          /* Number in CAN */	nasid_t		brd_nasid;        /* passed parameter */	klconf_off_t 	brd_compts[MAX_COMPTS_PER_BRD]; /* pointers to COMPONENTS */	klconf_off_t 	brd_errinfo;      /* Board's error information */	struct lboard_s *brd_parent;	  /* Logical parent for this brd */	vertex_hdl_t	brd_graph_link;   /* vertex hdl to connect extern compts */	confidence_t	brd_confidence;	  /* confidence that the board is bad */	nasid_t		brd_owner;        /* who owns this board */	unsigned char 	brd_nic_flags;    /* To handle 8 more NICs */	char		brd_name[32];} lboard_t;/* *	Make sure we pass back the calias space address for local boards. *	klconfig board traversal and error structure extraction defines. */#define BOARD_SLOT(_brd)	((_brd)->brd_slot)#define KLCF_CLASS(_brd)	KLCLASS((_brd)->brd_type)#define KLCF_TYPE(_brd)		KLTYPE((_brd)->brd_type)#define KLCF_REMOTE(_brd)  	(((_brd)->struct_type & LOCAL_BOARD) ? 0 : 1)#define KLCF_NUM_COMPS(_brd)	((_brd)->brd_numcompts)#define KLCF_MODULE_ID(_brd)	((_brd)->brd_module)#ifdef FRUTEST#define KLCF_NEXT(_brd) 		((_brd)->brd_next ? (lboard_t *)((_brd)->brd_next):  NULL)#define KLCF_COMP(_brd, _ndx)   	(klinfo_t *)((_brd)->brd_compts[(_ndx)])#define KLCF_COMP_ERROR(_brd, _comp)   	(_brd = _brd , (_comp)->errinfo)#else#define KLCF_NEXT(_brd) 	\        ((_brd)->brd_next ? 	\	 (lboard_t *)(NODE_OFFSET_TO_K1(NASID_GET(_brd), (_brd)->brd_next)):\	 NULL)#define KLCF_COMP(_brd, _ndx)   \                (klinfo_t *)(NODE_OFFSET_TO_K1(NASID_GET(_brd),	\					       (_brd)->brd_compts[(_ndx)]))#define KLCF_COMP_ERROR(_brd, _comp)	\               (NODE_OFFSET_TO_K1(NASID_GET(_brd), (_comp)->errinfo))#endif#define KLCF_COMP_TYPE(_comp)	((_comp)->struct_type)#define KLCF_BRIDGE_W_ID(_comp)	((_comp)->physid)	/* Widget ID *//* * Generic info structure. This stores common info about a * component. */typedef struct klinfo_s {                  /* Generic info */        unsigned char   struct_type;       /* type of this structure */        unsigned char   struct_version;    /* version of this structure */        unsigned char   flags;            /* Enabled, disabled etc */        unsigned char   revision;         /* component revision */        unsigned short  diagval;          /* result of diagnostics */        unsigned short  diagparm;         /* diagnostic parameter */        unsigned char   inventory;        /* previous inventory status */	nic_t 		nic;              /* MUst be aligned properly */        unsigned char   physid;           /* physical id of component */        unsigned int    virtid;           /* virtual id as seen by system */	unsigned char	widid;	          /* Widget id - if applicable */	nasid_t		nasid;            /* node number - from parent */	char		pad1;		  /* pad out structure. */	char		pad2;		  /* pad out structure. */	COMPONENT	*arcs_compt;      /* ptr to the arcs struct for ease*/        klconf_off_t	errinfo;          /* component specific errors */        unsigned short  pad3;             /* pci fields have moved over to */        unsigned short  pad4;             /* klbri_t */} klinfo_t ;#define KLCONFIG_INFO_ENABLED(_i)	((_i)->flags & KLINFO_ENABLE)/* * Component structures. * Following are the currently identified components: * 	CPU, HUB, MEM_BANK, * 	XBOW(consists of 16 WIDGETs, each of which can be HUB or GRAPHICS or BRIDGE) * 	BRIDGE, IOC3, SuperIO, SCSI, FDDI * 	ROUTER * 	GRAPHICS */#define KLSTRUCT_UNKNOWN	0#define KLSTRUCT_CPU  		1#define KLSTRUCT_HUB  		2#define KLSTRUCT_MEMBNK 	3#define KLSTRUCT_XBOW 		4#define KLSTRUCT_BRI 		5#define KLSTRUCT_IOC3 		6#define KLSTRUCT_PCI 		7#define KLSTRUCT_VME 		8#define KLSTRUCT_ROU		9#define KLSTRUCT_GFX 		10#define KLSTRUCT_SCSI 		11#define KLSTRUCT_FDDI 		12#define KLSTRUCT_MIO 		13#define KLSTRUCT_DISK 		14#define KLSTRUCT_TAPE 		15#define KLSTRUCT_CDROM 		16#define KLSTRUCT_HUB_UART 	17#define KLSTRUCT_IOC3ENET 	18#define KLSTRUCT_IOC3UART 	19#define KLSTRUCT_UNUSED		20 /* XXX UNUSED */#define KLSTRUCT_IOC3PCKM       21#define KLSTRUCT_RAD        	22#define KLSTRUCT_HUB_TTY        23#define KLSTRUCT_IOC3_TTY 	24/* Early Access IO proms are compatible   only with KLSTRUCT values upto 24. */#define KLSTRUCT_FIBERCHANNEL 	25#define KLSTRUCT_MOD_SERIAL_NUM 26#define KLSTRUCT_IOC3MS         27#define KLSTRUCT_TPU            28#define KLSTRUCT_GSN_A          29#define KLSTRUCT_GSN_B          30#define KLSTRUCT_XTHD           31/* * These are the indices of various components within a lboard structure. */#define IP27_CPU0_INDEX 0#define IP27_CPU1_INDEX 1#define IP27_HUB_INDEX 2#define IP27_MEM_INDEX 3#define BASEIO_BRIDGE_INDEX 0#define BASEIO_IOC3_INDEX 1#define BASEIO_SCSI1_INDEX 2#define BASEIO_SCSI2_INDEX 3#define MIDPLANE_XBOW_INDEX 0#define ROUTER_COMPONENT_INDEX 0#define CH4SCSI_BRIDGE_INDEX 0/* Info holders for various hardware components */typedef u64 *pci_t;typedef u64 *vmeb_t;typedef u64 *vmed_t;typedef u64 *fddi_t;typedef u64 *scsi_t;typedef u64 *mio_t;typedef u64 *graphics_t;typedef u64 *router_t;/* * The port info in ip27_cfg area translates to a lboart_t in the * KLCONFIG area. But since KLCONFIG does not use pointers, lboart_t * is stored in terms of a nasid and a offset from start of KLCONFIG * area  on that nasid. */typedef struct klport_s {	nasid_t		port_nasid;	unsigned char	port_flag;	klconf_off_t	port_offset;} klport_t;#if 0/* * This is very similar to the klport_s but instead of having a componant * offset it has a board offset. */typedef struct klxbow_port_s {	nasid_t		port_nasid;	unsigned char	port_flag;	klconf_off_t	board_offset;} klxbow_port_t;#endiftypedef struct klcpu_s {                          /* CPU */	klinfo_t 	cpu_info;	unsigned short 	cpu_prid;	/* Processor PRID value */	unsigned short 	cpu_fpirr;	/* FPU IRR value */    	unsigned short 	cpu_speed;	/* Speed in MHZ */    	unsigned short 	cpu_scachesz;	/* secondary cache size in MB */    	unsigned short 	cpu_scachespeed;/* secondary cache speed in MHz */} klcpu_t ;#define CPU_STRUCT_VERSION   2

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -