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