diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-09-30 16:44:52 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-09-30 16:44:52 +0000 |
commit | 1ae1ce35210e35559848b88ecd07206cdffd5f94 (patch) | |
tree | d0bfb00539f99b9026d387607ad594f507383bf3 /carl9170fw/include/shared/fwcmd.h | |
parent | Adding upstream version 20230625. (diff) | |
download | firmware-nonfree-1ae1ce35210e35559848b88ecd07206cdffd5f94.tar.xz firmware-nonfree-1ae1ce35210e35559848b88ecd07206cdffd5f94.zip |
Adding upstream version 20240709.upstream/20240709upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'carl9170fw/include/shared/fwcmd.h')
-rw-r--r-- | carl9170fw/include/shared/fwcmd.h | 318 |
1 files changed, 0 insertions, 318 deletions
diff --git a/carl9170fw/include/shared/fwcmd.h b/carl9170fw/include/shared/fwcmd.h deleted file mode 100644 index 9443c80..0000000 --- a/carl9170fw/include/shared/fwcmd.h +++ /dev/null @@ -1,318 +0,0 @@ -/* - * Shared Atheros AR9170 Header - * - * Firmware command interface definitions - * - * Copyright 2008, Johannes Berg <johannes@sipsolutions.net> - * Copyright 2009-2011 Christian Lamparter <chunkeey@googlemail.com> - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; see the file COPYING. If not, see - * http://www.gnu.org/licenses/. - * - * This file incorporates work covered by the following copyright and - * permission notice: - * Copyright (c) 2007-2008 Atheros Communications, Inc. - * - * Permission to use, copy, modify, and/or distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -#ifndef __CARL9170_SHARED_FWCMD_H -#define __CARL9170_SHARED_FWCMD_H - -#define CARL9170_MAX_CMD_LEN 64 -#define CARL9170_MAX_CMD_PAYLOAD_LEN 60 - -#define CARL9170FW_API_MIN_VER 1 -#define CARL9170FW_API_MAX_VER 1 - -enum carl9170_cmd_oids { - CARL9170_CMD_RREG = 0x00, - CARL9170_CMD_WREG = 0x01, - CARL9170_CMD_ECHO = 0x02, - CARL9170_CMD_SWRST = 0x03, - CARL9170_CMD_REBOOT = 0x04, - CARL9170_CMD_BCN_CTRL = 0x05, - CARL9170_CMD_READ_TSF = 0x06, - CARL9170_CMD_RX_FILTER = 0x07, - CARL9170_CMD_WOL = 0x08, - CARL9170_CMD_TALLY = 0x09, - - /* CAM */ - CARL9170_CMD_EKEY = 0x10, - CARL9170_CMD_DKEY = 0x11, - - /* RF / PHY */ - CARL9170_CMD_FREQUENCY = 0x20, - CARL9170_CMD_RF_INIT = 0x21, - CARL9170_CMD_SYNTH = 0x22, - CARL9170_CMD_FREQ_START = 0x23, - CARL9170_CMD_PSM = 0x24, - - /* Asychronous command flag */ - CARL9170_CMD_ASYNC_FLAG = 0x40, - CARL9170_CMD_WREG_ASYNC = (CARL9170_CMD_WREG | - CARL9170_CMD_ASYNC_FLAG), - CARL9170_CMD_REBOOT_ASYNC = (CARL9170_CMD_REBOOT | - CARL9170_CMD_ASYNC_FLAG), - CARL9170_CMD_BCN_CTRL_ASYNC = (CARL9170_CMD_BCN_CTRL | - CARL9170_CMD_ASYNC_FLAG), - CARL9170_CMD_PSM_ASYNC = (CARL9170_CMD_PSM | - CARL9170_CMD_ASYNC_FLAG), - - /* responses and traps */ - CARL9170_RSP_FLAG = 0xc0, - CARL9170_RSP_PRETBTT = 0xc0, - CARL9170_RSP_TXCOMP = 0xc1, - CARL9170_RSP_BEACON_CONFIG = 0xc2, - CARL9170_RSP_ATIM = 0xc3, - CARL9170_RSP_WATCHDOG = 0xc6, - CARL9170_RSP_TEXT = 0xca, - CARL9170_RSP_HEXDUMP = 0xcc, - CARL9170_RSP_RADAR = 0xcd, - CARL9170_RSP_GPIO = 0xce, - CARL9170_RSP_BOOT = 0xcf, -}; - -struct carl9170_set_key_cmd { - __le16 user; - __le16 keyId; - __le16 type; - u8 macAddr[6]; - u32 key[4]; -} __packed __aligned(4); -#define CARL9170_SET_KEY_CMD_SIZE 28 - -struct carl9170_disable_key_cmd { - __le16 user; - __le16 padding; -} __packed __aligned(4); -#define CARL9170_DISABLE_KEY_CMD_SIZE 4 - -struct carl9170_u32_list { - u32 vals[0]; -} __packed; - -struct carl9170_reg_list { - __le32 regs[0]; -} __packed; - -struct carl9170_write_reg { - struct { - __le32 addr; - __le32 val; - } regs[0] __packed; -} __packed; - -#define CARL9170FW_PHY_HT_ENABLE 0x4 -#define CARL9170FW_PHY_HT_DYN2040 0x8 -#define CARL9170FW_PHY_HT_EXT_CHAN_OFF 0x3 -#define CARL9170FW_PHY_HT_EXT_CHAN_OFF_S 2 - -struct carl9170_rf_init { - __le32 freq; - u8 ht_settings; - u8 padding2[3]; - __le32 delta_slope_coeff_exp; - __le32 delta_slope_coeff_man; - __le32 delta_slope_coeff_exp_shgi; - __le32 delta_slope_coeff_man_shgi; - __le32 finiteLoopCount; -} __packed; -#define CARL9170_RF_INIT_SIZE 28 - -struct carl9170_rf_init_result { - __le32 ret; /* AR9170_PHY_REG_AGC_CONTROL */ -} __packed; -#define CARL9170_RF_INIT_RESULT_SIZE 4 - -#define CARL9170_PSM_SLEEP 0x1000 -#define CARL9170_PSM_SOFTWARE 0 -#define CARL9170_PSM_WAKE 0 /* internally used. */ -#define CARL9170_PSM_COUNTER 0xfff -#define CARL9170_PSM_COUNTER_S 0 - -struct carl9170_psm { - __le32 state; -} __packed; -#define CARL9170_PSM_SIZE 4 - -struct carl9170_rx_filter_cmd { - __le32 rx_filter; -} __packed; -#define CARL9170_RX_FILTER_CMD_SIZE 4 - -#define CARL9170_RX_FILTER_BAD 0x01 -#define CARL9170_RX_FILTER_OTHER_RA 0x02 -#define CARL9170_RX_FILTER_DECRY_FAIL 0x04 -#define CARL9170_RX_FILTER_CTL_OTHER 0x08 -#define CARL9170_RX_FILTER_CTL_PSPOLL 0x10 -#define CARL9170_RX_FILTER_CTL_BACKR 0x20 -#define CARL9170_RX_FILTER_MGMT 0x40 -#define CARL9170_RX_FILTER_DATA 0x80 -#define CARL9170_RX_FILTER_EVERYTHING (~0) - -struct carl9170_bcn_ctrl_cmd { - __le32 vif_id; - __le32 mode; - __le32 bcn_addr; - __le32 bcn_len; -} __packed; -#define CARL9170_BCN_CTRL_CMD_SIZE 16 - -#define CARL9170_BCN_CTRL_DRAIN 0 -#define CARL9170_BCN_CTRL_CAB_TRIGGER 1 - -struct carl9170_wol_cmd { - __le32 flags; - u8 mac[6]; - u8 bssid[6]; - __le32 null_interval; - __le32 free_for_use2; - __le32 mask; - u8 pattern[32]; -} __packed; - -#define CARL9170_WOL_CMD_SIZE 60 - -#define CARL9170_WOL_DISCONNECT 1 -#define CARL9170_WOL_MAGIC_PKT 2 - -struct carl9170_cmd_head { - union { - struct { - u8 len; - u8 cmd; - u8 seq; - u8 ext; - } __packed; - - u32 hdr_data; - } __packed; -} __packed; - -struct carl9170_cmd { - struct carl9170_cmd_head hdr; - union { - struct carl9170_set_key_cmd setkey; - struct carl9170_disable_key_cmd disablekey; - struct carl9170_u32_list echo; - struct carl9170_reg_list rreg; - struct carl9170_write_reg wreg; - struct carl9170_rf_init rf_init; - struct carl9170_psm psm; - struct carl9170_wol_cmd wol; - struct carl9170_bcn_ctrl_cmd bcn_ctrl; - struct carl9170_rx_filter_cmd rx_filter; - u8 data[CARL9170_MAX_CMD_PAYLOAD_LEN]; - } __packed; -} __packed __aligned(4); - -#define CARL9170_TX_STATUS_QUEUE 3 -#define CARL9170_TX_STATUS_QUEUE_S 0 -#define CARL9170_TX_STATUS_RIX_S 2 -#define CARL9170_TX_STATUS_RIX (3 << CARL9170_TX_STATUS_RIX_S) -#define CARL9170_TX_STATUS_TRIES_S 4 -#define CARL9170_TX_STATUS_TRIES (7 << CARL9170_TX_STATUS_TRIES_S) -#define CARL9170_TX_STATUS_SUCCESS 0x80 - -#ifdef __CARL9170FW__ -/* - * NOTE: - * Both structs [carl9170_tx_status and _carl9170_tx_status] - * need to be "bit for bit" in sync. - */ -struct carl9170_tx_status { - /* - * Beware of compiler bugs in all gcc pre 4.4! - */ - - u8 cookie; - u8 queue:2; - u8 rix:2; - u8 tries:3; - u8 success:1; -} __packed; -#endif /* __CARL9170FW__ */ - -struct _carl9170_tx_status { - /* - * This version should be immune to all alignment bugs. - */ - - u8 cookie; - u8 info; -} __packed; -#define CARL9170_TX_STATUS_SIZE 2 - -#define CARL9170_RSP_TX_STATUS_NUM (CARL9170_MAX_CMD_PAYLOAD_LEN / \ - sizeof(struct _carl9170_tx_status)) - -#define CARL9170_TX_MAX_RATE_TRIES 7 - -#define CARL9170_TX_MAX_RATES 4 -#define CARL9170_TX_MAX_RETRY_RATES (CARL9170_TX_MAX_RATES - 1) -#define CARL9170_ERR_MAGIC "ERR:" -#define CARL9170_BUG_MAGIC "BUG:" - -struct carl9170_gpio { - __le32 gpio; -} __packed; -#define CARL9170_GPIO_SIZE 4 - -struct carl9170_tsf_rsp { - union { - __le32 tsf[2]; - __le64 tsf_64; - } __packed; -} __packed; -#define CARL9170_TSF_RSP_SIZE 8 - -struct carl9170_tally_rsp { - __le32 active; - __le32 cca; - __le32 tx_time; - __le32 rx_total; - __le32 rx_overrun; - __le32 tick; -} __packed; - -struct carl9170_rsp { - struct carl9170_cmd_head hdr; - - union { - struct carl9170_rf_init_result rf_init_res; - struct carl9170_u32_list rreg_res; - struct carl9170_u32_list echo; -#ifdef __CARL9170FW__ - struct carl9170_tx_status tx_status[0]; -#endif /* __CARL9170FW__ */ - struct _carl9170_tx_status _tx_status[0]; - struct carl9170_gpio gpio; - struct carl9170_tsf_rsp tsf; - struct carl9170_psm psm; - struct carl9170_tally_rsp tally; - u8 data[CARL9170_MAX_CMD_PAYLOAD_LEN]; - } __packed; -} __packed __aligned(4); - -#endif /* __CARL9170_SHARED_FWCMD_H */ |