blob: 0f5b3302f3063f003d4453e71791752ddd3edf50 [file] [log] [blame]
/* Copyright (c) 2022, Qualcomm Innovation Center, Inc. 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 _TX_FES_STATUS_START_PROT_H_
#define _TX_FES_STATUS_START_PROT_H_
#if !defined(__ASSEMBLER__)
#endif
#define NUM_OF_DWORDS_TX_FES_STATUS_START_PROT 4
#define NUM_OF_QWORDS_TX_FES_STATUS_START_PROT 2
struct tx_fes_status_start_prot {
#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
uint32_t prot_timestamp_lower_32 : 32; // [31:0]
uint32_t prot_timestamp_upper_32 : 32; // [31:0]
uint32_t subband_mask : 16, // [15:0]
reserved_2b : 4, // [19:16]
prot_coex_based_tx_bw : 3, // [22:20]
prot_coex_based_ant_mask : 8, // [30:23]
prot_coex_result_alt_based : 1; // [31:31]
uint32_t prot_coex_tx_pwr_shared_ant : 8, // [7:0]
prot_coex_tx_pwr_ant : 8, // [15:8]
prot_concurrent_bt_tx : 1, // [16:16]
prot_concurrent_wlan_tx : 1, // [17:17]
prot_concurrent_wan_tx : 1, // [18:18]
prot_concurrent_wan_rx : 1, // [19:19]
prot_coex_pwr_reduction_bt : 1, // [20:20]
prot_coex_pwr_reduction_wlan : 1, // [21:21]
prot_coex_pwr_reduction_wan : 1, // [22:22]
prot_request_packet_bw : 3, // [25:23]
response_type : 5, // [30:26]
reserved_3a : 1; // [31:31]
#else
uint32_t prot_timestamp_lower_32 : 32; // [31:0]
uint32_t prot_timestamp_upper_32 : 32; // [31:0]
uint32_t prot_coex_result_alt_based : 1, // [31:31]
prot_coex_based_ant_mask : 8, // [30:23]
prot_coex_based_tx_bw : 3, // [22:20]
reserved_2b : 4, // [19:16]
subband_mask : 16; // [15:0]
uint32_t reserved_3a : 1, // [31:31]
response_type : 5, // [30:26]
prot_request_packet_bw : 3, // [25:23]
prot_coex_pwr_reduction_wan : 1, // [22:22]
prot_coex_pwr_reduction_wlan : 1, // [21:21]
prot_coex_pwr_reduction_bt : 1, // [20:20]
prot_concurrent_wan_rx : 1, // [19:19]
prot_concurrent_wan_tx : 1, // [18:18]
prot_concurrent_wlan_tx : 1, // [17:17]
prot_concurrent_bt_tx : 1, // [16:16]
prot_coex_tx_pwr_ant : 8, // [15:8]
prot_coex_tx_pwr_shared_ant : 8; // [7:0]
#endif
};
/* Description PROT_TIMESTAMP_LOWER_32
Global timer value at start of Protection transmission
*/
#define TX_FES_STATUS_START_PROT_PROT_TIMESTAMP_LOWER_32_OFFSET 0x0000000000000000
#define TX_FES_STATUS_START_PROT_PROT_TIMESTAMP_LOWER_32_LSB 0
#define TX_FES_STATUS_START_PROT_PROT_TIMESTAMP_LOWER_32_MSB 31
#define TX_FES_STATUS_START_PROT_PROT_TIMESTAMP_LOWER_32_MASK 0x00000000ffffffff
/* Description PROT_TIMESTAMP_UPPER_32
Global timer value at start of Protection transmission
*/
#define TX_FES_STATUS_START_PROT_PROT_TIMESTAMP_UPPER_32_OFFSET 0x0000000000000000
#define TX_FES_STATUS_START_PROT_PROT_TIMESTAMP_UPPER_32_LSB 32
#define TX_FES_STATUS_START_PROT_PROT_TIMESTAMP_UPPER_32_MSB 63
#define TX_FES_STATUS_START_PROT_PROT_TIMESTAMP_UPPER_32_MASK 0xffffffff00000000
/* Description SUBBAND_MASK
This mask indicates which 20 Mhz channels are actively used
in the BW or puncture pattern selected for transmit.
Bit 0: primary 20 Mhz
Bit 1: secondary 20 MHz
Etc.
Hamilton v1 used bits [5:1] for the 'Response_type' expected.
<legal all>
*/
#define TX_FES_STATUS_START_PROT_SUBBAND_MASK_OFFSET 0x0000000000000008
#define TX_FES_STATUS_START_PROT_SUBBAND_MASK_LSB 0
#define TX_FES_STATUS_START_PROT_SUBBAND_MASK_MSB 15
#define TX_FES_STATUS_START_PROT_SUBBAND_MASK_MASK 0x000000000000ffff
/* Description RESERVED_2B
<legal 0>
*/
#define TX_FES_STATUS_START_PROT_RESERVED_2B_OFFSET 0x0000000000000008
#define TX_FES_STATUS_START_PROT_RESERVED_2B_LSB 16
#define TX_FES_STATUS_START_PROT_RESERVED_2B_MSB 19
#define TX_FES_STATUS_START_PROT_RESERVED_2B_MASK 0x00000000000f0000
/* Description PROT_COEX_BASED_TX_BW
Field valid for Protection frame transmission
This is the transmit bandwidth value
that is granted by Coex.
<enum 0 20_mhz>20 Mhz BW
<enum 1 40_mhz>40 Mhz BW
<enum 2 80_mhz>80 Mhz BW
<enum 3 160_mhz>160 Mhz BW
<enum 4 320_mhz>320 Mhz BW
<enum 5 240_mhz>240 Mhz BW
*/
#define TX_FES_STATUS_START_PROT_PROT_COEX_BASED_TX_BW_OFFSET 0x0000000000000008
#define TX_FES_STATUS_START_PROT_PROT_COEX_BASED_TX_BW_LSB 20
#define TX_FES_STATUS_START_PROT_PROT_COEX_BASED_TX_BW_MSB 22
#define TX_FES_STATUS_START_PROT_PROT_COEX_BASED_TX_BW_MASK 0x0000000000700000
/* Description PROT_COEX_BASED_ANT_MASK
Field valid for Protection frame transmission
The antennas allowed to be used for this transmission.
(Coex is allowed to reduce the number of antennas to be
used, but not the number of SS)
<legal all>
*/
#define TX_FES_STATUS_START_PROT_PROT_COEX_BASED_ANT_MASK_OFFSET 0x0000000000000008
#define TX_FES_STATUS_START_PROT_PROT_COEX_BASED_ANT_MASK_LSB 23
#define TX_FES_STATUS_START_PROT_PROT_COEX_BASED_ANT_MASK_MSB 30
#define TX_FES_STATUS_START_PROT_PROT_COEX_BASED_ANT_MASK_MASK 0x000000007f800000
/* Description PROT_COEX_RESULT_ALT_BASED
Field valid for Protection frame transmission
When set, the resulting Coex transmit parameters are based
alternate transmit settings in the TX_RATE_SETTING STRUCT
of the original selected BW
When not set, the resulting Coex parameters are based on
the default transmit settings in the TX_RATE_SETTING STRUCT
<legal all>
*/
#define TX_FES_STATUS_START_PROT_PROT_COEX_RESULT_ALT_BASED_OFFSET 0x0000000000000008
#define TX_FES_STATUS_START_PROT_PROT_COEX_RESULT_ALT_BASED_LSB 31
#define TX_FES_STATUS_START_PROT_PROT_COEX_RESULT_ALT_BASED_MSB 31
#define TX_FES_STATUS_START_PROT_PROT_COEX_RESULT_ALT_BASED_MASK 0x0000000080000000
/* Description PROT_COEX_TX_PWR_SHARED_ANT
Field valid for Protection frame transmission
Transmit Power in s6.2 format.
In units of 0.25 dBm
<legal all>
*/
#define TX_FES_STATUS_START_PROT_PROT_COEX_TX_PWR_SHARED_ANT_OFFSET 0x0000000000000008
#define TX_FES_STATUS_START_PROT_PROT_COEX_TX_PWR_SHARED_ANT_LSB 32
#define TX_FES_STATUS_START_PROT_PROT_COEX_TX_PWR_SHARED_ANT_MSB 39
#define TX_FES_STATUS_START_PROT_PROT_COEX_TX_PWR_SHARED_ANT_MASK 0x000000ff00000000
/* Description PROT_COEX_TX_PWR_ANT
Field valid for Protection frame transmission
Transmit Power in s6.2 format.
In units of 0.25 dBm
<legal all>
*/
#define TX_FES_STATUS_START_PROT_PROT_COEX_TX_PWR_ANT_OFFSET 0x0000000000000008
#define TX_FES_STATUS_START_PROT_PROT_COEX_TX_PWR_ANT_LSB 40
#define TX_FES_STATUS_START_PROT_PROT_COEX_TX_PWR_ANT_MSB 47
#define TX_FES_STATUS_START_PROT_PROT_COEX_TX_PWR_ANT_MASK 0x0000ff0000000000
/* Description PROT_CONCURRENT_BT_TX
Field valid for Protection frame transmission
Indicate the current TX is concurrent with a BT transmission.
This bit is to be copied over into the FES status info.
<legal all>
*/
#define TX_FES_STATUS_START_PROT_PROT_CONCURRENT_BT_TX_OFFSET 0x0000000000000008
#define TX_FES_STATUS_START_PROT_PROT_CONCURRENT_BT_TX_LSB 48
#define TX_FES_STATUS_START_PROT_PROT_CONCURRENT_BT_TX_MSB 48
#define TX_FES_STATUS_START_PROT_PROT_CONCURRENT_BT_TX_MASK 0x0001000000000000
/* Description PROT_CONCURRENT_WLAN_TX
Field valid for Protection frame transmission
Indicate the current TX is concurrent with other WLAN transmission.
This bit is to be copied over into FES status info. <legal
all>
*/
#define TX_FES_STATUS_START_PROT_PROT_CONCURRENT_WLAN_TX_OFFSET 0x0000000000000008
#define TX_FES_STATUS_START_PROT_PROT_CONCURRENT_WLAN_TX_LSB 49
#define TX_FES_STATUS_START_PROT_PROT_CONCURRENT_WLAN_TX_MSB 49
#define TX_FES_STATUS_START_PROT_PROT_CONCURRENT_WLAN_TX_MASK 0x0002000000000000
/* Description PROT_CONCURRENT_WAN_TX
Field valid for Protection frame transmission
Indicate the current TX is concurrent with WAN transmission.
This bit is to be copied over into FES status info.
<legal all>
*/
#define TX_FES_STATUS_START_PROT_PROT_CONCURRENT_WAN_TX_OFFSET 0x0000000000000008
#define TX_FES_STATUS_START_PROT_PROT_CONCURRENT_WAN_TX_LSB 50
#define TX_FES_STATUS_START_PROT_PROT_CONCURRENT_WAN_TX_MSB 50
#define TX_FES_STATUS_START_PROT_PROT_CONCURRENT_WAN_TX_MASK 0x0004000000000000
/* Description PROT_CONCURRENT_WAN_RX
Field valid for Protection frame transmission
Indicate the current TX is concurrent with WAN reception.
This bit is to be copied over into FES status info.
<legal all>
*/
#define TX_FES_STATUS_START_PROT_PROT_CONCURRENT_WAN_RX_OFFSET 0x0000000000000008
#define TX_FES_STATUS_START_PROT_PROT_CONCURRENT_WAN_RX_LSB 51
#define TX_FES_STATUS_START_PROT_PROT_CONCURRENT_WAN_RX_MSB 51
#define TX_FES_STATUS_START_PROT_PROT_CONCURRENT_WAN_RX_MASK 0x0008000000000000
/* Description PROT_COEX_PWR_REDUCTION_BT
When set, transmit power for the protection frame is reduced
due to BT coex reason
<legal all>
*/
#define TX_FES_STATUS_START_PROT_PROT_COEX_PWR_REDUCTION_BT_OFFSET 0x0000000000000008
#define TX_FES_STATUS_START_PROT_PROT_COEX_PWR_REDUCTION_BT_LSB 52
#define TX_FES_STATUS_START_PROT_PROT_COEX_PWR_REDUCTION_BT_MSB 52
#define TX_FES_STATUS_START_PROT_PROT_COEX_PWR_REDUCTION_BT_MASK 0x0010000000000000
/* Description PROT_COEX_PWR_REDUCTION_WLAN
When set, transmit power for the protection frame is reduced
due to wlan coex reason
<legal all>
*/
#define TX_FES_STATUS_START_PROT_PROT_COEX_PWR_REDUCTION_WLAN_OFFSET 0x0000000000000008
#define TX_FES_STATUS_START_PROT_PROT_COEX_PWR_REDUCTION_WLAN_LSB 53
#define TX_FES_STATUS_START_PROT_PROT_COEX_PWR_REDUCTION_WLAN_MSB 53
#define TX_FES_STATUS_START_PROT_PROT_COEX_PWR_REDUCTION_WLAN_MASK 0x0020000000000000
/* Description PROT_COEX_PWR_REDUCTION_WAN
When set, transmit power for the protection frame is reduced
due to wan coex reason
<legal all>
*/
#define TX_FES_STATUS_START_PROT_PROT_COEX_PWR_REDUCTION_WAN_OFFSET 0x0000000000000008
#define TX_FES_STATUS_START_PROT_PROT_COEX_PWR_REDUCTION_WAN_LSB 54
#define TX_FES_STATUS_START_PROT_PROT_COEX_PWR_REDUCTION_WAN_MSB 54
#define TX_FES_STATUS_START_PROT_PROT_COEX_PWR_REDUCTION_WAN_MASK 0x0040000000000000
/* Description PROT_REQUEST_PACKET_BW
The requested transmit BW to PDG
Note that Coex can have changed the actual allowed transmit
bandwidth.
<enum 0 20_mhz>20 Mhz BW
<enum 1 40_mhz>40 Mhz BW
<enum 2 80_mhz>80 Mhz BW
<enum 3 160_mhz>160 Mhz BW
<enum 4 320_mhz>320 Mhz BW
<enum 5 240_mhz>240 Mhz BW
*/
#define TX_FES_STATUS_START_PROT_PROT_REQUEST_PACKET_BW_OFFSET 0x0000000000000008
#define TX_FES_STATUS_START_PROT_PROT_REQUEST_PACKET_BW_LSB 55
#define TX_FES_STATUS_START_PROT_PROT_REQUEST_PACKET_BW_MSB 57
#define TX_FES_STATUS_START_PROT_PROT_REQUEST_PACKET_BW_MASK 0x0380000000000000
/* Description RESPONSE_TYPE
PPDU transmission Response type expected
<enum 0 no_response_expected>After transmission of this
frame, no response in SIFS time is expected
When TXPCU sees this setting, it shall not generated the
EXPECTED_RESPONSE TLV.
RXPCU should never see this setting
<enum 1 ack_expected>An ACK frame is expected as response
RXPCU is just expecting any response. It is TXPCU who checks
that the right response was received.
<enum 2 ba_64_bitmap_expected>BA with 64 bitmap is expected.
PDG DOES NOT use the size info to calculated response duration.
The length of the response will have to be programmed by
SW in the per-BW 'Expected_ppdu_resp_length' field.
For TXPCU only the fact that it is a BA is important. Actual
received BA size is not important
RXPCU is just expecting any response. It is TXPCU who checks
that the right response was received.
<enum 3 ba_256_expected>BA with 256 bitmap is expected.
PDG DOES NOT use the size info to calculated response duration.
The length of the response will have to be programmed by
SW in the per-BW 'Expected_ppdu_resp_length' field.
For TXPCU only the fact that it is a BA is important. Actual
received BA size is not important
RXPCU is just expecting any response. It is TXPCU who checks
that the right response was received.
<enum 4 actionnoack_expected>SW sets this after sending
NDP or BR-Poll.
As PDG has no idea on how long the reception is going to
be, the reception time of the response will have to be
programmed by SW in the 'Extend_duration_value_bw...' field
RXPCU is just expecting any response. It is TXPCU who checks
that the right response was received.
<enum 5 ack_ba_expected>PDG uses the size info and assumes
single BA format with ACK and 64 bitmap embedded.
If SW expects more bitmaps in case of multi-TID, is shall
program the 'Extend_duration_value_bw...' field for additional
duration time.
For TXPCU only the fact that an ACK and/or BA is received
is important. Reception of only ACK or BA is also considered
a success.
SW also typically sets this when sending VHT single MPDU.
Some chip vendors might send BA rather than ACK in response
to VHT single MPDU but still we want to accept BA as well.
RXPCU is just expecting any response. It is TXPCU who checks
that the right response was received.
<enum 6 cts_expected>SW sets this after queuing RTS frame
as standalone packet and sending it.
RXPCU is just expecting any response. It is TXPCU who checks
that the right response was received.
<enum 7 ack_data_expected>SW sets this after sending PS-Poll.
For TXPCU either ACK and/or data reception is considered
success.
PDG basis it's response duration calculation on an ACK.
For the data portion, SW shall program the 'Extend_duration_value_bw...'
field
<enum 8 ndp_ack_expected>Reserved for 11ah usage.
<enum 9 ndp_modified_ack>Reserved for 11ah usage
<enum 10 ndp_ba_expected>Reserved for 11ah usage.
<enum 11 ndp_cts_expected>Reserved for 11ah usage
<enum 12 ndp_ack_or_ndp_modified_ack_expected>Reserved for
11ah usage
<enum 13 ul_mu_ba_expected>NOT SUPPORTED IN NAPIER AX AND
HASTINGS
TXPCU expects UL MU OFDMA or UL MU MIMO reception.
As PDG does not know how RUs are assigned for the uplink
portion, PDG can not calculate the uplink duration. Therefor
SW shall program the 'Extend_duration_value_bw...' field
RXPCU will report any frame received, irrespective of it
having been UL MU or SU It is TXPCUs responsibility to
distinguish between the UL MU or SU
TXPCU can check in TLV RECEIVED_RESPONSE_INFO MU_Response_BA_bitmap
if indeed BA was received
<enum 14 ul_mu_ba_and_data_expected>NOT SUPPORTED IN NAPIER
AX AND HASTINGS
TXPCU expects UL MU OFDMA or UL MU MIMO reception.
As PDG does not know how RUs are assigned for the uplink
portion, PDG can not calculate the uplink duration. Therefor
SW shall program the 'Extend_duration_value_bw...' field
RXPCU will report any frame received, irrespective of it
having been UL MU or SU It is TXPCUs responsibility to
distinguish between the UL MU or SU
TXPCU can check in TLV RECEIVED_RESPONSE_INFO, field MU_Response_data_bitmap
and MU_Response_BA_bitmap if indeed BA and data was received
<enum 15 ul_mu_cbf_expected>NOT SUPPORTED IN NAPIER AX AND
HASTINGS
When selected, CBF frames are expected to be received in
MU reception (uplink OFDMA or uplink MIMO)
RXPCU is just expecting any response. It is TXPCU who checks
that the right response was received
TXPCU can check in TLV RECEIVED_RESPONSE_INFO, field MU_Response_cbf_bitmap
if indeed CBF frames were received.
<enum 16 ul_mu_frames_expected>When selected, MPDU frames
are expected in the MU reception (uplink OFDMA or uplink
MIMO)
RXPCU is just expecting any response. It is TXPCU who checks
that the right response was received
TXPCU can check in TLV RECEIVED_RESPONSE_INFO, field MU_Response_bitmap
if indeed frames were received.
<enum 17 any_response_to_this_device>Any response expected
to be send to this device in SIFS time is acceptable.
RXPCU is just expecting any response. It is TXPCU who checks
that the right response was received
For TXPCU, UL MU or SU is both acceptable.
Can be used for complex OFDMA scenarios. PDG can not calculate
the uplink duration. Therefor SW shall program the 'Extend_duration_value_bw...'
field
<enum 18 any_response_accepted>Any frame in the medium to
this or any other device, is acceptable as response.
RXPCU is just expecting any response. It is TXPCU who checks
that the right response was received
For TXPCU, UL MU or SU is both acceptable.
Can be used for complex OFDMA scenarios. PDG can not calculate
the uplink duration. Therefor SW shall program the 'Extend_duration_value_bw...'
field
<enum 19 frameless_phyrx_response_accepted>Any MU frameless
reception generated by the PHY is acceptable.
PHY indicates this type of reception explicitly in TLV PHYRX_RSSI_LEGACY,
field Reception_type == reception_is_frameless
RXPCU will report any frame received, irrespective of it
having been UL MU or SU.
This can be used for complex MU-MIMO or OFDMA scenarios,
like receiving MU-CTS.
PDG can not calculate the uplink duration. Therefor SW shall
program the 'Extend_duration_value_bw...' field
<enum 20 ranging_ndp_and_lmr_expected>SW sets this after
sending ranging NDPA followed by NDP as an ISTA and NDP
and LMR (Action No Ack) are expected as back-to-back reception
in SIFS.
As PDG has no idea on how long the reception is going to
be, the reception time of the response will have to be
programmed by SW in the 'Extend_duration_value_bw...' field
RXPCU is just expecting any response. It is TXPCU who checks
that the right response was received.
<enum 21 ba_512_expected>BA with 512 bitmap is expected.
PDG DOES NOT use the size info to calculated response duration.
The length of the response will have to be programmed by
SW in the per-BW 'Expected_ppdu_resp_length' field.
For TXPCU only the fact that it is a BA is important. Actual
received BA size is not important
RXPCU is just expecting any response. It is TXPCU who checks
that the right response was received.
<enum 22 ba_1024_expected>BA with 1024 bitmap is expected.
PDG DOES NOT use the size info to calculated response duration.
The length of the response will have to be programmed by
SW in the per-BW 'Expected_ppdu_resp_length' field.
For TXPCU only the fact that it is a BA is important. Actual
received BA size is not important
RXPCU is just expecting any response. It is TXPCU who checks
that the right response was received.
<enum 23 ul_mu_ranging_cts2s_expected>When selected, CTS2S
frames are expected to be received in MU reception (uplink
OFDMA)
RXPCU shall check each response for CTS2S and report to
TXPCU.
TXPCU can check in the TLV 'RECEIVED_RESPONSE_INFO,' fields
'MU_Response_bitmap' and 'TB_Ranging_Resp' if indeed CTS2S
frames were received.
<enum 24 ul_mu_ranging_ndp_expected>When selected, UL NDP
frames are expected to be received in MU reception (uplink
spatial multiplexing)
RXPCU shall check each response for NDP and report to TXPCU.
TXPCU can check in the TLV 'RECEIVED_RESPONSE_INFO,' fields
'MU_Response_bitmap' and 'TB_Ranging_Resp' if indeed NDP
frames were received.
<enum 25 ul_mu_ranging_lmr_expected>When selected, LMR frames
are expected to be received in MU reception (uplink OFDMA
or uplink MIMO)
RXPCU shall check each response for LMR and report to TXPCU.
TXPCU can check in the TLV 'RECEIVED_RESPONSE_INFO,' fields
'MU_Response_bitmap' and 'TB_Ranging_Resp' if indeed LMR
frames were received.
*/
#define TX_FES_STATUS_START_PROT_RESPONSE_TYPE_OFFSET 0x0000000000000008
#define TX_FES_STATUS_START_PROT_RESPONSE_TYPE_LSB 58
#define TX_FES_STATUS_START_PROT_RESPONSE_TYPE_MSB 62
#define TX_FES_STATUS_START_PROT_RESPONSE_TYPE_MASK 0x7c00000000000000
/* Description RESERVED_3A
*/
#define TX_FES_STATUS_START_PROT_RESERVED_3A_OFFSET 0x0000000000000008
#define TX_FES_STATUS_START_PROT_RESERVED_3A_LSB 63
#define TX_FES_STATUS_START_PROT_RESERVED_3A_MSB 63
#define TX_FES_STATUS_START_PROT_RESERVED_3A_MASK 0x8000000000000000
#endif // TX_FES_STATUS_START_PROT