diff options
Diffstat (limited to 'drivers/net/myri10ge/myri10ge_mcp_gen_header.h')
-rw-r--r-- | drivers/net/myri10ge/myri10ge_mcp_gen_header.h | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/drivers/net/myri10ge/myri10ge_mcp_gen_header.h b/drivers/net/myri10ge/myri10ge_mcp_gen_header.h new file mode 100644 index 00000000000..7ec4b864a55 --- /dev/null +++ b/drivers/net/myri10ge/myri10ge_mcp_gen_header.h | |||
@@ -0,0 +1,60 @@ | |||
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 | |||
14 | struct mcp_gen_header { | ||
15 | /* the first 4 fields are filled at compile time */ | ||
16 | unsigned header_length; | ||
17 | __be32 mcp_type; | ||
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__ */ | ||