rio.h 2.5 KB
Newer Older
1
/*
2 3
 * Derived from include/asm-x86/mach-summit/mach_mpparse.h
 *          and include/asm-x86/mach-default/bios_ebda.h
4 5 6 7
 *
 * Author: Laurent Vivier <Laurent.Vivier@bull.net>
 */

H
H. Peter Anvin 已提交
8 9
#ifndef _ASM_X86_RIO_H
#define _ASM_X86_RIO_H
10 11 12 13

#define RIO_TABLE_VERSION	3

struct rio_table_hdr {
14 15 16
	u8 version;		/* Version number of this data structure  */
	u8 num_scal_dev;	/* # of Scalability devices               */
	u8 num_rio_dev;		/* # of RIO I/O devices                   */
17 18 19
} __attribute__((packed));

struct scal_detail {
20 21 22 23 24 25 26 27 28 29 30 31
	u8 node_id;		/* Scalability Node ID                    */
	u32 CBAR;		/* Address of 1MB register space          */
	u8 port0node;		/* Node ID port connected to: 0xFF=None   */
	u8 port0port;		/* Port num port connected to: 0,1,2, or  */
				/* 0xFF=None                              */
	u8 port1node;		/* Node ID port connected to: 0xFF = None */
	u8 port1port;		/* Port num port connected to: 0,1,2, or  */
				/* 0xFF=None                              */
	u8 port2node;		/* Node ID port connected to: 0xFF = None */
	u8 port2port;		/* Port num port connected to: 0,1,2, or  */
				/* 0xFF=None                              */
	u8 chassis_num;		/* 1 based Chassis number (1 = boot node) */
32 33 34
} __attribute__((packed));

struct rio_detail {
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
	u8 node_id;		/* RIO Node ID                            */
	u32 BBAR;		/* Address of 1MB register space          */
	u8 type;		/* Type of device                         */
	u8 owner_id;		/* Node ID of Hurricane that owns this    */
				/* node                                   */
	u8 port0node;		/* Node ID port connected to: 0xFF=None   */
	u8 port0port;		/* Port num port connected to: 0,1,2, or  */
				/* 0xFF=None                              */
	u8 port1node;		/* Node ID port connected to: 0xFF=None   */
	u8 port1port;		/* Port num port connected to: 0,1,2, or  */
				/* 0xFF=None                              */
	u8 first_slot;		/* Lowest slot number below this Calgary  */
	u8 status;		/* Bit 0 = 1 : the XAPIC is used          */
				/*       = 0 : the XAPIC is not used, ie: */
				/*            ints fwded to another XAPIC */
				/*           Bits1:7 Reserved             */
	u8 WP_index;		/* instance index - lower ones have       */
				/*     lower slot numbers/PCI bus numbers */
	u8 chassis_num;		/* 1 based Chassis number                 */
54 55 56
} __attribute__((packed));

enum {
57 58 59 60
	HURR_SCALABILTY	= 0,	/* Hurricane Scalability info */
	HURR_RIOIB	= 2,	/* Hurricane RIOIB info       */
	COMPAT_CALGARY	= 4,	/* Compatibility Calgary      */
	ALT_CALGARY	= 5,	/* Second Planar Calgary      */
61 62
};

H
H. Peter Anvin 已提交
63
#endif /* _ASM_X86_RIO_H */