• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/drivers/misc/iwmc3200top/
1/*
2 * iwmc3200top - Intel Wireless MultiCom 3200 Top Driver
3 * drivers/misc/iwmc3200top/fw-msg.h
4 *
5 * Copyright (C) 2009 Intel Corporation. All rights reserved.
6 *
7 * This program is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License version
9 * 2 as published by the Free Software Foundation.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
19 * 02110-1301, USA.
20 *
21 *
22 * Author Name: Maxim Grabarnik <maxim.grabarnink@intel.com>
23 *  -
24 *
25 */
26
27#ifndef __FWMSG_H__
28#define __FWMSG_H__
29
30#define COMM_TYPE_D2H           	0xFF
31#define COMM_TYPE_H2D           	0xEE
32
33#define COMM_CATEGORY_OPERATIONAL      	0x00
34#define COMM_CATEGORY_DEBUG            	0x01
35#define COMM_CATEGORY_TESTABILITY      	0x02
36#define COMM_CATEGORY_DIAGNOSTICS      	0x03
37
38#define OP_DBG_ZSTR_MSG			cpu_to_le16(0x1A)
39
40#define FW_LOG_SRC_MAX			32
41#define FW_LOG_SRC_ALL			255
42
43#define FW_STRING_TABLE_ADDR		cpu_to_le32(0x0C000000)
44
45#define CMD_DBG_LOG_LEVEL		cpu_to_le16(0x0001)
46#define CMD_TST_DEV_RESET		cpu_to_le16(0x0060)
47#define CMD_TST_FUNC_RESET		cpu_to_le16(0x0062)
48#define CMD_TST_IFACE_RESET		cpu_to_le16(0x0064)
49#define CMD_TST_CPU_UTILIZATION		cpu_to_le16(0x0065)
50#define CMD_TST_TOP_DEEP_SLEEP		cpu_to_le16(0x0080)
51#define CMD_TST_WAKEUP			cpu_to_le16(0x0081)
52#define CMD_TST_FUNC_WAKEUP		cpu_to_le16(0x0082)
53#define CMD_TST_FUNC_DEEP_SLEEP_REQUEST	cpu_to_le16(0x0083)
54#define CMD_TST_GET_MEM_DUMP		cpu_to_le16(0x0096)
55
56#define OP_OPR_ALIVE			cpu_to_le16(0x0010)
57#define OP_OPR_CMD_ACK			cpu_to_le16(0x001F)
58#define OP_OPR_CMD_NACK			cpu_to_le16(0x0020)
59#define OP_TST_MEM_DUMP			cpu_to_le16(0x0043)
60
61#define CMD_FLAG_PADDING_256		0x80
62
63#define FW_HCMD_BLOCK_SIZE      	256
64
65struct msg_hdr {
66	u8 type;
67	u8 category;
68	__le16 opcode;
69	u8 seqnum;
70	u8 flags;
71	__le16 length;
72} __attribute__((__packed__));
73
74struct log_hdr {
75	__le32 timestamp;
76	u8 severity;
77	u8 logsource;
78	__le16 reserved;
79} __attribute__((__packed__));
80
81struct mdump_hdr {
82	u8 dmpid;
83	u8 frag;
84	__le16 size;
85	__le32 addr;
86} __attribute__((__packed__));
87
88struct top_msg {
89	struct msg_hdr hdr;
90	union {
91		/* D2H messages */
92		struct {
93			struct log_hdr log_hdr;
94			u8 data[1];
95		} __attribute__((__packed__)) log;
96
97		struct {
98			struct log_hdr log_hdr;
99			struct mdump_hdr md_hdr;
100			u8 data[1];
101		} __attribute__((__packed__)) mdump;
102
103		/* H2D messages */
104		struct {
105			u8 logsource;
106			u8 sevmask;
107		} __attribute__((__packed__)) logdefs[FW_LOG_SRC_MAX];
108		struct mdump_hdr mdump_req;
109	} u;
110} __attribute__((__packed__));
111
112
113#endif /* __FWMSG_H__ */
114