summaryrefslogtreecommitdiff
path: root/hw/qca5018/ht_sig_info.h
diff options
context:
space:
mode:
Diffstat (limited to 'hw/qca5018/ht_sig_info.h')
-rw-r--r--hw/qca5018/ht_sig_info.h388
1 files changed, 388 insertions, 0 deletions
diff --git a/hw/qca5018/ht_sig_info.h b/hw/qca5018/ht_sig_info.h
new file mode 100644
index 0000000..e0f2c5e
--- /dev/null
+++ b/hw/qca5018/ht_sig_info.h
@@ -0,0 +1,388 @@
+/*
+ * Copyright (c) 2020, The Linux Foundation. All rights reserved.
+ *
+ * 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 _HT_SIG_INFO_H_
+#define _HT_SIG_INFO_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+
+// ################ START SUMMARY #################
+//
+// Dword Fields
+// 0 mcs[6:0], cbw[7], length[23:8], reserved_0[31:24]
+// 1 smoothing[0], not_sounding[1], ht_reserved[2], aggregation[3], stbc[5:4], fec_coding[6], short_gi[7], num_ext_sp_str[9:8], crc[17:10], signal_tail[23:18], reserved_1[31:24]
+//
+// ################ END SUMMARY #################
+
+#define NUM_OF_DWORDS_HT_SIG_INFO 2
+
+struct ht_sig_info {
+ uint32_t mcs : 7, //[6:0]
+ cbw : 1, //[7]
+ length : 16, //[23:8]
+ reserved_0 : 8; //[31:24]
+ uint32_t smoothing : 1, //[0]
+ not_sounding : 1, //[1]
+ ht_reserved : 1, //[2]
+ aggregation : 1, //[3]
+ stbc : 2, //[5:4]
+ fec_coding : 1, //[6]
+ short_gi : 1, //[7]
+ num_ext_sp_str : 2, //[9:8]
+ crc : 8, //[17:10]
+ signal_tail : 6, //[23:18]
+ reserved_1 : 8; //[31:24]
+};
+
+/*
+
+mcs
+
+ Modulation Coding Scheme:
+
+ 0-7 are used for single stream
+
+ 8-15 are used for 2 streams
+
+ 16-23 are used for 3 streams
+
+ 24-31 are used for 4 streams
+
+ 32 is used for duplicate HT20 (unsupported)
+
+ 33-76 is used for unequal modulation (unsupported)
+
+ 77-127 is reserved.
+
+ <legal 0-31>
+
+cbw
+
+ Packet bandwidth:
+
+ <enum 0 ht_20_mhz>
+
+ <enum 1 ht_40_mhz>
+
+ <legal 0-1>
+
+length
+
+ This is the MPDU or A-MPDU length in octets of the PPDU
+
+ <legal all>
+
+reserved_0
+
+ This field is not part of HT-SIG
+
+ Reserved: Should be set to 0 by the MAC and ignored by
+ the PHY <legal 0>
+
+smoothing
+
+ Field indicates if smoothing is needed
+
+ E_num 0 do_smoothing Unsupported setting: indicates
+ smoothing is often used for beamforming
+
+
+ <legal 1>
+
+not_sounding
+
+ E_num 0 sounding Unsupported setting: indicates
+ sounding is used
+
+ <enum 1 no_sounding> Indicates no sounding is used
+
+ <legal 1>
+
+ht_reserved
+
+ Reserved: Should be set to 1 by the MAC and ignored by
+ the PHY
+
+ <legal 1>
+
+aggregation
+
+ <enum 0 mpdu> Indicates MPDU format
+
+ <enum 1 a_mpdu> Indicates A-MPDU format
+
+ <legal 0-1>
+
+stbc
+
+ <enum 0 no_stbc> Indicates no STBC
+
+ <enum 1 1_str_stbc> Indicates 1 stream STBC
+
+ E_num 2 2_str_stbc Indicates 2 stream STBC
+ (Unsupported)
+
+ <legal 0-1>
+
+fec_coding
+
+ <enum 0 ht_bcc> Indicates BCC coding
+
+ <enum 1 ht_ldpc> Indicates LDPC coding
+
+ <legal 0-1>
+
+short_gi
+
+ <enum 0 ht_normal_gi> Indicates normal guard
+ interval
+
+
+ <legal 0-1>
+
+num_ext_sp_str
+
+ Number of extension spatial streams: (Used for TxBF)
+
+ <enum 0 0_ext_sp_str> No extension spatial streams
+
+ E_num 1 1_ext_sp_str Not supported: 1 extension
+ spatial streams
+
+ E_num 2 2_ext_sp_str Not supported: 2 extension
+ spatial streams
+
+ <legal 0>
+
+crc
+
+ The CRC protects the HT-SIG (HT-SIG[0][23:0] and
+ HT-SIG[1][9:0]. The generator polynomial is G(D) = D8 + D2 +
+ D + 1. <legal all>
+
+signal_tail
+
+ The 6 bits of tail is always set to 0 is used to flush
+ the BCC encoder and decoder. <legal 0>
+
+reserved_1
+
+ This field is not part of HT-SIG:
+
+ Reserved: Should be set to 0 by the MAC and ignored by
+ the PHY. <legal 0>
+*/
+
+
+/* Description HT_SIG_INFO_0_MCS
+
+ Modulation Coding Scheme:
+
+ 0-7 are used for single stream
+
+ 8-15 are used for 2 streams
+
+ 16-23 are used for 3 streams
+
+ 24-31 are used for 4 streams
+
+ 32 is used for duplicate HT20 (unsupported)
+
+ 33-76 is used for unequal modulation (unsupported)
+
+ 77-127 is reserved.
+
+ <legal 0-31>
+*/
+#define HT_SIG_INFO_0_MCS_OFFSET 0x00000000
+#define HT_SIG_INFO_0_MCS_LSB 0
+#define HT_SIG_INFO_0_MCS_MASK 0x0000007f
+
+/* Description HT_SIG_INFO_0_CBW
+
+ Packet bandwidth:
+
+ <enum 0 ht_20_mhz>
+
+ <enum 1 ht_40_mhz>
+
+ <legal 0-1>
+*/
+#define HT_SIG_INFO_0_CBW_OFFSET 0x00000000
+#define HT_SIG_INFO_0_CBW_LSB 7
+#define HT_SIG_INFO_0_CBW_MASK 0x00000080
+
+/* Description HT_SIG_INFO_0_LENGTH
+
+ This is the MPDU or A-MPDU length in octets of the PPDU
+
+ <legal all>
+*/
+#define HT_SIG_INFO_0_LENGTH_OFFSET 0x00000000
+#define HT_SIG_INFO_0_LENGTH_LSB 8
+#define HT_SIG_INFO_0_LENGTH_MASK 0x00ffff00
+
+/* Description HT_SIG_INFO_0_RESERVED_0
+
+ This field is not part of HT-SIG
+
+ Reserved: Should be set to 0 by the MAC and ignored by
+ the PHY <legal 0>
+*/
+#define HT_SIG_INFO_0_RESERVED_0_OFFSET 0x00000000
+#define HT_SIG_INFO_0_RESERVED_0_LSB 24
+#define HT_SIG_INFO_0_RESERVED_0_MASK 0xff000000
+
+/* Description HT_SIG_INFO_1_SMOOTHING
+
+ Field indicates if smoothing is needed
+
+ E_num 0 do_smoothing Unsupported setting: indicates
+ smoothing is often used for beamforming
+
+
+ <legal 1>
+*/
+#define HT_SIG_INFO_1_SMOOTHING_OFFSET 0x00000004
+#define HT_SIG_INFO_1_SMOOTHING_LSB 0
+#define HT_SIG_INFO_1_SMOOTHING_MASK 0x00000001
+
+/* Description HT_SIG_INFO_1_NOT_SOUNDING
+
+ E_num 0 sounding Unsupported setting: indicates
+ sounding is used
+
+ <enum 1 no_sounding> Indicates no sounding is used
+
+ <legal 1>
+*/
+#define HT_SIG_INFO_1_NOT_SOUNDING_OFFSET 0x00000004
+#define HT_SIG_INFO_1_NOT_SOUNDING_LSB 1
+#define HT_SIG_INFO_1_NOT_SOUNDING_MASK 0x00000002
+
+/* Description HT_SIG_INFO_1_HT_RESERVED
+
+ Reserved: Should be set to 1 by the MAC and ignored by
+ the PHY
+
+ <legal 1>
+*/
+#define HT_SIG_INFO_1_HT_RESERVED_OFFSET 0x00000004
+#define HT_SIG_INFO_1_HT_RESERVED_LSB 2
+#define HT_SIG_INFO_1_HT_RESERVED_MASK 0x00000004
+
+/* Description HT_SIG_INFO_1_AGGREGATION
+
+ <enum 0 mpdu> Indicates MPDU format
+
+ <enum 1 a_mpdu> Indicates A-MPDU format
+
+ <legal 0-1>
+*/
+#define HT_SIG_INFO_1_AGGREGATION_OFFSET 0x00000004
+#define HT_SIG_INFO_1_AGGREGATION_LSB 3
+#define HT_SIG_INFO_1_AGGREGATION_MASK 0x00000008
+
+/* Description HT_SIG_INFO_1_STBC
+
+ <enum 0 no_stbc> Indicates no STBC
+
+ <enum 1 1_str_stbc> Indicates 1 stream STBC
+
+ E_num 2 2_str_stbc Indicates 2 stream STBC
+ (Unsupported)
+
+ <legal 0-1>
+*/
+#define HT_SIG_INFO_1_STBC_OFFSET 0x00000004
+#define HT_SIG_INFO_1_STBC_LSB 4
+#define HT_SIG_INFO_1_STBC_MASK 0x00000030
+
+/* Description HT_SIG_INFO_1_FEC_CODING
+
+ <enum 0 ht_bcc> Indicates BCC coding
+
+ <enum 1 ht_ldpc> Indicates LDPC coding
+
+ <legal 0-1>
+*/
+#define HT_SIG_INFO_1_FEC_CODING_OFFSET 0x00000004
+#define HT_SIG_INFO_1_FEC_CODING_LSB 6
+#define HT_SIG_INFO_1_FEC_CODING_MASK 0x00000040
+
+/* Description HT_SIG_INFO_1_SHORT_GI
+
+ <enum 0 ht_normal_gi> Indicates normal guard
+ interval
+
+
+ <legal 0-1>
+*/
+#define HT_SIG_INFO_1_SHORT_GI_OFFSET 0x00000004
+#define HT_SIG_INFO_1_SHORT_GI_LSB 7
+#define HT_SIG_INFO_1_SHORT_GI_MASK 0x00000080
+
+/* Description HT_SIG_INFO_1_NUM_EXT_SP_STR
+
+ Number of extension spatial streams: (Used for TxBF)
+
+ <enum 0 0_ext_sp_str> No extension spatial streams
+
+ E_num 1 1_ext_sp_str Not supported: 1 extension
+ spatial streams
+
+ E_num 2 2_ext_sp_str Not supported: 2 extension
+ spatial streams
+
+ <legal 0>
+*/
+#define HT_SIG_INFO_1_NUM_EXT_SP_STR_OFFSET 0x00000004
+#define HT_SIG_INFO_1_NUM_EXT_SP_STR_LSB 8
+#define HT_SIG_INFO_1_NUM_EXT_SP_STR_MASK 0x00000300
+
+/* Description HT_SIG_INFO_1_CRC
+
+ The CRC protects the HT-SIG (HT-SIG[0][23:0] and
+ HT-SIG[1][9:0]. The generator polynomial is G(D) = D8 + D2 +
+ D + 1. <legal all>
+*/
+#define HT_SIG_INFO_1_CRC_OFFSET 0x00000004
+#define HT_SIG_INFO_1_CRC_LSB 10
+#define HT_SIG_INFO_1_CRC_MASK 0x0003fc00
+
+/* Description HT_SIG_INFO_1_SIGNAL_TAIL
+
+ The 6 bits of tail is always set to 0 is used to flush
+ the BCC encoder and decoder. <legal 0>
+*/
+#define HT_SIG_INFO_1_SIGNAL_TAIL_OFFSET 0x00000004
+#define HT_SIG_INFO_1_SIGNAL_TAIL_LSB 18
+#define HT_SIG_INFO_1_SIGNAL_TAIL_MASK 0x00fc0000
+
+/* Description HT_SIG_INFO_1_RESERVED_1
+
+ This field is not part of HT-SIG:
+
+ Reserved: Should be set to 0 by the MAC and ignored by
+ the PHY. <legal 0>
+*/
+#define HT_SIG_INFO_1_RESERVED_1_OFFSET 0x00000004
+#define HT_SIG_INFO_1_RESERVED_1_LSB 24
+#define HT_SIG_INFO_1_RESERVED_1_MASK 0xff000000
+
+
+#endif // _HT_SIG_INFO_H_