• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /******************************************************************************
2  *
3  * Copyright(c) 2016 - 2019 Realtek Corporation. All rights reserved.
4  *
5  * This program is free software; you can redistribute it and/or modify it
6  * under the terms of version 2 of the GNU General Public License as
7  * published by the Free Software Foundation.
8  *
9  * This program is distributed in the hope that it will be useful, but WITHOUT
10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11  * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
12  * more details.
13  *
14  ******************************************************************************/
15 
16 #ifndef _HALMAC_FW_INFO_H_
17 #define _HALMAC_FW_INFO_H_
18 
19 #define H2C_FORMAT_VERSION				15
20 
21 /* FW bin information */
22 #define WLAN_FW_HDR_SIZE				64
23 #define WLAN_FW_HDR_CHKSUM_SIZE			8
24 
25 #define WLAN_FW_HDR_VERSION				4
26 #define WLAN_FW_HDR_SUBVERSION			6
27 #define WLAN_FW_HDR_SUBINDEX			7
28 #define WLAN_FW_HDR_MONTH				16
29 #define WLAN_FW_HDR_DATE				17
30 #define WLAN_FW_HDR_HOUR				18
31 #define WLAN_FW_HDR_MIN					19
32 #define WLAN_FW_HDR_YEAR				20
33 #define WLAN_FW_HDR_MEM_USAGE			24
34 #define WLAN_FW_HDR_H2C_FMT_VER			28
35 #define WLAN_FW_HDR_DMEM_ADDR			32
36 #define WLAN_FW_HDR_DMEM_SIZE			36
37 #define WLAN_FW_HDR_IMEM_SIZE			48
38 #define WLAN_FW_HDR_EMEM_SIZE			52
39 #define WLAN_FW_HDR_EMEM_ADDR			56
40 #define WLAN_FW_HDR_IMEM_ADDR			60
41 
42 #define H2C_ACK_HDR_CONTENT_LENGTH			8
43 #define CFG_PARAMETER_ACK_CONTENT_LENGTH	16
44 #define CH_SWITCH_ACK_CONTENT_LENGTH		16
45 #define SCAN_STATUS_RPT_CONTENT_LENGTH		4
46 #define SCAN_STATUS_RPT_CONTENT_LENGTH_V2	12
47 #define SCAN_CH_NOTIFY_CONTENT_LENGTH		12
48 #define C2H_DBG_HDR_LEN						4
49 #define C2H_DBG_CONTENT_MAX_LENGTH			228
50 #define C2H_DBG_CONTENT_SEQ_OFFSET			1
51 
52 /* Rename from FW SysHalCom_Debug_RAM.h */
53 #define FW_REG_H2CPKT_DONE_SEQ				0x1C8
54 #define FW_REG_WOW_REASON					0x1C7
55 
56 enum halmac_data_type {
57 	HALMAC_DATA_TYPE_MAC_REG = 0x00,
58 	HALMAC_DATA_TYPE_BB_REG = 0x01,
59 	HALMAC_DATA_TYPE_RADIO_A = 0x02,
60 	HALMAC_DATA_TYPE_RADIO_B = 0x03,
61 	HALMAC_DATA_TYPE_RADIO_C = 0x04,
62 	HALMAC_DATA_TYPE_RADIO_D = 0x05,
63 
64 	HALMAC_DATA_TYPE_DRV_DEFINE_0 = 0x80,
65 	HALMAC_DATA_TYPE_DRV_DEFINE_1 = 0x81,
66 	HALMAC_DATA_TYPE_DRV_DEFINE_2 = 0x82,
67 	HALMAC_DATA_TYPE_DRV_DEFINE_3 = 0x83,
68 	HALMAC_DATA_TYPE_UNDEFINE = 0x7FFFFFFF,
69 };
70 
71 enum halmac_packet_id {
72 	HALMAC_PACKET_PROBE_REQ = 0x00,
73 	HALMAC_PACKET_SYNC_BCN = 0x01,
74 	HALMAC_PACKET_DISCOVERY_BCN = 0x02,
75 	HALMAC_PACKET_PROBE_REQ_NLO = 0xF0,
76 	HALMAC_PACKET_SYNC_BCN_NLO = 0xF1,
77 	HALMAC_PACKET_DISCOVERY_BCN_NLO = 0xF2,
78 	HALMAC_PACKET_UNDEFINE = 0x7FFFFFFF,
79 };
80 
81 enum halmac_cs_action_id {
82 	HALMAC_CS_ACTION_NONE = 0x00,
83 	HALMAC_CS_ACTIVE_SCAN = 0x01,
84 	HALMAC_CS_NAN_NONMASTER_DW = 0x02,
85 	HALMAC_CS_NAN_NONMASTER_NONDW = 0x03,
86 	HALMAC_CS_NAN_MASTER_NONDW = 0x04,
87 	HALMAC_CS_NAN_MASTER_DW = 0x05,
88 	HALMAC_CS_ACTION_UNDEFINE = 0x7FFFFFFF,
89 };
90 
91 enum halmac_cs_extra_action_id {
92 	HALMAC_CS_EXTRA_ACTION_NONE = 0x00,
93 	HALMAC_CS_EXTRA_UPDATE_PROBE = 0x01,
94 	HALMAC_CS_EXTRA_UPDATE_BEACON = 0x02,
95 	HALMAC_CS_EXTRA_ACTION_SCAN = 0x03,
96 	HALMAC_CS_EXTRA_ACTION_UNDEFINE = 0x7FFFFFFF,
97 };
98 
99 enum halmac_h2c_return_code {
100 	HALMAC_H2C_RETURN_SUCCESS = 0x00,
101 	HALMAC_H2C_RETURN_CFG_ERR_LEN = 0x01,
102 	HALMAC_H2C_RETURN_CFG_ERR_CMD = 0x02,
103 	HALMAC_H2C_RETURN_EFUSE_ERR_DUMP = 0x03,
104 	HALMAC_H2C_RETURN_DATAPACK_ERR_FULL = 0x04,
105 	HALMAC_H2C_RETURN_DATAPACK_ERR_ID = 0x05,
106 	HALMAC_H2C_RETURN_RUN_ERR_EMPTY = 0x06,
107 	HALMAC_H2C_RETURN_RUN_ERR_LEN = 0x07,
108 	HALMAC_H2C_RETURN_RUN_ERR_CMD = 0x08,
109 	HALMAC_H2C_RETURN_RUN_ERR_ID = 0x09,
110 	HALMAC_H2C_RETURN_PACKET_ERR_FULL = 0x0A,
111 	HALMAC_H2C_RETURN_PACKET_ERR_ID = 0x0B,
112 	HALMAC_H2C_RETURN_SCAN_ERR_FULL = 0x0C,
113 	HALMAC_H2C_RETURN_SCAN_ERR_PHYDM = 0x0D,
114 	HALMAC_H2C_RETURN_ORIG_ERR_ID = 0x0E,
115 	HALMAC_H2C_RETURN_SCAN_PKT_FULL = 0x0F,
116 	HALMAC_H2C_RETURN_SCAN_PKT_BUF_BUSY = 0x10,
117 	HALMAC_H2C_RETURN_SCAN_PKT_IDX_REUSE = 0x11,
118 	HALMAC_H2C_RETURN_EFUSE_BUF_BUSY = 0x12,
119 	HALMAC_H2C_RETURN_UNDEFINE = 0x7FFFFFFF,
120 };
121 
122 enum halmac_scan_report_code {
123 	HALMAC_SCAN_REPORT_DONE	= 0x00,
124 	HALMAC_SCAN_REPORT_ERR_PHYDM = 0x01,
125 	HALMAC_SCAN_REPORT_ERR_ID = 0x02,
126 	HALMAC_SCAN_REPORT_ERR_TX = 0x03,
127 	HALMAC_SCAN_REPORT_UNDEFINE = 0x7FFFFFFF,
128 };
129 
130 enum halmac_scan_notify_id {
131 	HALMAC_SCAN_NOTIFY_ID_PRESWITCH = 0x00,
132 	HALMAC_SCAN_NOTIFY_ID_POSTSWITCH = 0x01,
133 	HALMAC_SCAN_NOTIFY_ID_PROBE_PRETX = 0x02,
134 	HALMAC_SCAN_NOTIFY_ID_PROBE_POSTTX = 0x03,
135 	HALMAC_SCAN_NOTIFY_ID_ACTION_PRETX = 0x04,
136 	HALMAC_SCAN_NOTIFY_ID_ACTION_POSTTX = 0x05,
137 	HALMAC_SCAN_NOTIFY_ID_DWELLEXT = 0x06,
138 	HALMAC_SCAN_NOTIFY_ID_UNDEFINE = 0x7F,
139 };
140 
141 enum halmac_scan_notify_status {
142 	HALMAC_SCAN_NOTIFY_STATUS_NONE = 0x00,
143 	HALMAC_SCAN_NOTIFY_STATUS_PHYDM_OK = 0x01,
144 	HALMAC_SCAN_NOTIFY_STATUS_PHYDM_ERR = 0x02,
145 	HALMAC_SCAN_NOTIFY_STATUS_NO_PROBE = 0x03,
146 	HALMAC_SCAN_NOTIFY_STATUS_TX_PROBE_OK = 0x04,
147 	HALMAC_SCAN_NOTIFY_STATUS_TX_PROBE_FAIL = 0x05,
148 	HALMAC_SCAN_NOTIFY_STATUS_INVALID_ACTION_IDX = 0x06,
149 	HALMAC_SCAN_NOTIFY_STATUS_TX_ACTION_OK = 0x07,
150 	HALMAC_SCAN_NOTIFY_STATUS_TX_ACTION_FAIL = 0x08,
151 	HALMAC_SCAN_NOTIFY_STATUS_UNDEFINE = 0x7F,
152 };
153 
154 #endif
155