Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
myri10ge_mcp_gen_header.h
Go to the documentation of this file.
1 #ifndef __MYRI10GE_MCP_GEN_HEADER_H__
2 #define __MYRI10GE_MCP_GEN_HEADER_H__
3 
4 
5 #define MCP_HEADER_PTR_OFFSET 0x3c
6 
7 #define MCP_TYPE_MX 0x4d582020 /* "MX " */
8 #define MCP_TYPE_PCIE 0x70636965 /* "PCIE" pcie-only MCP */
9 #define MCP_TYPE_ETH 0x45544820 /* "ETH " */
10 #define MCP_TYPE_MCP0 0x4d435030 /* "MCP0" */
11 #define MCP_TYPE_DFLT 0x20202020 /* " " */
12 #define MCP_TYPE_ETHZ 0x4554485a /* "ETHZ" */
13 
15  /* the first 4 fields are filled at compile time */
16  unsigned header_length;
18  char version[128];
19  unsigned mcp_private; /* pointer to mcp-type specific structure */
20 
21  /* filled by the MCP at run-time */
22  unsigned sram_size;
23  unsigned string_specs; /* either the original STRING_SPECS or a superset */
24  unsigned string_specs_len;
25 
26  /* Fields above this comment are guaranteed to be present.
27  *
28  * Fields below this comment are extensions added in later versions
29  * of this struct, drivers should compare the header_length against
30  * offsetof(field) to check wether a given MCP implements them.
31  *
32  * Never remove any field. Keep everything naturally align.
33  */
34 
35  /* Specifies if the running mcp is mcp0, 1, or 2. */
36  unsigned char mcp_index;
37  unsigned char disable_rabbit;
38  unsigned char unaligned_tlp;
39  unsigned char pcie_link_algo;
40  unsigned counters_addr;
41  unsigned copy_block_info; /* for small mcps loaded with "lload -d" */
42  unsigned short handoff_id_major; /* must be equal */
43  unsigned short handoff_id_caps; /* bitfield: new mcp must have superset */
44  unsigned msix_table_addr; /* start address of msix table in firmware */
45  unsigned bss_addr; /* start of bss */
46  unsigned features;
47  unsigned ee_hdr_addr;
48  unsigned led_pattern;
49  unsigned led_pattern_dflt;
50  /* 8 */
51 };
52 
53 struct zmcp_info {
54  unsigned info_len;
55  unsigned zmcp_addr;
56  unsigned zmcp_len;
57  unsigned mcp_edata;
58 };
59 
60 #endif /* __MYRI10GE_MCP_GEN_HEADER_H__ */