Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
awilliam
GitHub Repository: awilliam/linux-vfio
Path: blob/master/drivers/misc/iwmc3200top/fw-msg.h
15111 views
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 <[email protected]>
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
65
struct msg_hdr {
66
u8 type;
67
u8 category;
68
__le16 opcode;
69
u8 seqnum;
70
u8 flags;
71
__le16 length;
72
} __attribute__((__packed__));
73
74
struct log_hdr {
75
__le32 timestamp;
76
u8 severity;
77
u8 logsource;
78
__le16 reserved;
79
} __attribute__((__packed__));
80
81
struct mdump_hdr {
82
u8 dmpid;
83
u8 frag;
84
__le16 size;
85
__le32 addr;
86
} __attribute__((__packed__));
87
88
struct 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
115