/* * 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 _RX_PPDU_START_H_ #define _RX_PPDU_START_H_ #if !defined(__ASSEMBLER__) #endif // ################ START SUMMARY ################# // // Dword Fields // 0 phy_ppdu_id[15:0], reserved_15[31:16] // 1 sw_phy_meta_data[31:0] // 2 ppdu_start_timestamp[31:0] // // ################ END SUMMARY ################# #define NUM_OF_DWORDS_RX_PPDU_START 3 struct rx_ppdu_start { uint32_t phy_ppdu_id : 16, //[15:0] reserved_15 : 16; //[31:16] uint32_t sw_phy_meta_data : 32; //[31:0] uint32_t ppdu_start_timestamp : 32; //[31:0] }; /* phy_ppdu_id A ppdu counter value that PHY increments for every PPDU received. The counter value wraps around reserved_15 Reserved sw_phy_meta_data SW programmed Meta data provided by the PHY. Can be used for SW to indicate the channel the device is on. ppdu_start_timestamp Timestamp that indicates when the PPDU that contained this MPDU started on the medium. The timestamp is captured by the PHY and given to the MAC in PHYRX_RSSI_LEGACY.ppdu_start_timestamp */ /* Description RX_PPDU_START_0_PHY_PPDU_ID A ppdu counter value that PHY increments for every PPDU received. The counter value wraps around */ #define RX_PPDU_START_0_PHY_PPDU_ID_OFFSET 0x00000000 #define RX_PPDU_START_0_PHY_PPDU_ID_LSB 0 #define RX_PPDU_START_0_PHY_PPDU_ID_MASK 0x0000ffff /* Description RX_PPDU_START_0_RESERVED_15 Reserved */ #define RX_PPDU_START_0_RESERVED_15_OFFSET 0x00000000 #define RX_PPDU_START_0_RESERVED_15_LSB 16 #define RX_PPDU_START_0_RESERVED_15_MASK 0xffff0000 /* Description RX_PPDU_START_1_SW_PHY_META_DATA SW programmed Meta data provided by the PHY. Can be used for SW to indicate the channel the device is on. */ #define RX_PPDU_START_1_SW_PHY_META_DATA_OFFSET 0x00000004 #define RX_PPDU_START_1_SW_PHY_META_DATA_LSB 0 #define RX_PPDU_START_1_SW_PHY_META_DATA_MASK 0xffffffff /* Description RX_PPDU_START_2_PPDU_START_TIMESTAMP Timestamp that indicates when the PPDU that contained this MPDU started on the medium. The timestamp is captured by the PHY and given to the MAC in PHYRX_RSSI_LEGACY.ppdu_start_timestamp */ #define RX_PPDU_START_2_PPDU_START_TIMESTAMP_OFFSET 0x00000008 #define RX_PPDU_START_2_PPDU_START_TIMESTAMP_LSB 0 #define RX_PPDU_START_2_PPDU_START_TIMESTAMP_MASK 0xffffffff #endif // _RX_PPDU_START_H_