[BACK]Return to myri10ge_mcp_gen_header.h CVS log [TXT][DIR] Up to [Development] / linux-2.6-xfs / drivers / net / myri10ge

File: [Development] / linux-2.6-xfs / drivers / net / myri10ge / myri10ge_mcp_gen_header.h (download)

Revision 1.18, Mon Aug 4 17:03:13 2008 UTC (9 years, 2 months ago) by lachlan.longdrop.melbourne.sgi.com
Branch: MAIN
Changes since 1.17: +14 -25 lines

Merge up to 2.6.26
Merge of 2.6.x-xfs-melb:linux:31804b by kenmcd.

#ifndef __MYRI10GE_MCP_GEN_HEADER_H__
#define __MYRI10GE_MCP_GEN_HEADER_H__


#define MCP_HEADER_PTR_OFFSET  0x3c

#define MCP_TYPE_MX 0x4d582020	/* "MX  " */
#define MCP_TYPE_PCIE 0x70636965	/* "PCIE" pcie-only MCP */
#define MCP_TYPE_ETH 0x45544820	/* "ETH " */
#define MCP_TYPE_MCP0 0x4d435030	/* "MCP0" */
#define MCP_TYPE_DFLT 0x20202020	/* "    " */

struct mcp_gen_header {
	/* the first 4 fields are filled at compile time */
	unsigned header_length;
	__be32 mcp_type;
	char version[128];
	unsigned mcp_private;	/* pointer to mcp-type specific structure */

	/* filled by the MCP at run-time */
	unsigned sram_size;
	unsigned string_specs;	/* either the original STRING_SPECS or a superset */
	unsigned string_specs_len;

	/* Fields above this comment are guaranteed to be present.
	 *
	 * Fields below this comment are extensions added in later versions
	 * of this struct, drivers should compare the header_length against
	 * offsetof(field) to check wether a given MCP implements them.
	 *
	 * Never remove any field.  Keep everything naturally align.
	 */

	/* Specifies if the running mcp is mcp0, 1, or 2. */
	unsigned char mcp_index;
	unsigned char disable_rabbit;
	unsigned char unaligned_tlp;
	unsigned char pad1;
	unsigned counters_addr;
	unsigned copy_block_info;	/* for small mcps loaded with "lload -d" */
	unsigned short handoff_id_major;	/* must be equal */
	unsigned short handoff_id_caps;	/* bitfield: new mcp must have superset */
	unsigned msix_table_addr;	/* start address of msix table in firmware */
	/* 8 */
};

#endif				/* __MYRI10GE_MCP_GEN_HEADER_H__ */