rx_ppdu_start.h 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. /*
  2. * Copyright (c) 2018 The Linux Foundation. All rights reserved.
  3. *
  4. * Permission to use, copy, modify, and/or distribute this software for
  5. * any purpose with or without fee is hereby granted, provided that the
  6. * above copyright notice and this permission notice appear in all
  7. * copies.
  8. *
  9. * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
  10. * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
  11. * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
  12. * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
  13. * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
  14. * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
  15. * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  16. * PERFORMANCE OF THIS SOFTWARE.
  17. */
  18. #ifndef _RX_PPDU_START_H_
  19. #define _RX_PPDU_START_H_
  20. #if !defined(__ASSEMBLER__)
  21. #endif
  22. // ################ START SUMMARY #################
  23. //
  24. // Dword Fields
  25. // 0 phy_ppdu_id[15:0], reserved_15[31:16]
  26. // 1 sw_phy_meta_data[31:0]
  27. // 2 ppdu_start_timestamp[31:0]
  28. //
  29. // ################ END SUMMARY #################
  30. #define NUM_OF_DWORDS_RX_PPDU_START 3
  31. struct rx_ppdu_start {
  32. uint32_t phy_ppdu_id : 16, //[15:0]
  33. reserved_15 : 16; //[31:16]
  34. uint32_t sw_phy_meta_data : 32; //[31:0]
  35. uint32_t ppdu_start_timestamp : 32; //[31:0]
  36. };
  37. /*
  38. phy_ppdu_id
  39. A ppdu counter value that PHY increments for every PPDU
  40. received. The counter value wraps around
  41. <legal all>
  42. reserved_15
  43. Reserved
  44. <legal 0>
  45. sw_phy_meta_data
  46. SW programmed Meta data provided by the PHY.
  47. Can be used for SW to indicate the channel the device is
  48. on.
  49. ppdu_start_timestamp
  50. Timestamp that indicates when the PPDU that contained
  51. this MPDU started on the medium.
  52. The timestamp is captured by the PHY and given to the
  53. MAC in PHYRX_RSSI_LEGACY.ppdu_start_timestamp
  54. <legal all>
  55. */
  56. /* Description RX_PPDU_START_0_PHY_PPDU_ID
  57. A ppdu counter value that PHY increments for every PPDU
  58. received. The counter value wraps around
  59. <legal all>
  60. */
  61. #define RX_PPDU_START_0_PHY_PPDU_ID_OFFSET 0x00000000
  62. #define RX_PPDU_START_0_PHY_PPDU_ID_LSB 0
  63. #define RX_PPDU_START_0_PHY_PPDU_ID_MASK 0x0000ffff
  64. /* Description RX_PPDU_START_0_RESERVED_15
  65. Reserved
  66. <legal 0>
  67. */
  68. #define RX_PPDU_START_0_RESERVED_15_OFFSET 0x00000000
  69. #define RX_PPDU_START_0_RESERVED_15_LSB 16
  70. #define RX_PPDU_START_0_RESERVED_15_MASK 0xffff0000
  71. /* Description RX_PPDU_START_1_SW_PHY_META_DATA
  72. SW programmed Meta data provided by the PHY.
  73. Can be used for SW to indicate the channel the device is
  74. on.
  75. */
  76. #define RX_PPDU_START_1_SW_PHY_META_DATA_OFFSET 0x00000004
  77. #define RX_PPDU_START_1_SW_PHY_META_DATA_LSB 0
  78. #define RX_PPDU_START_1_SW_PHY_META_DATA_MASK 0xffffffff
  79. /* Description RX_PPDU_START_2_PPDU_START_TIMESTAMP
  80. Timestamp that indicates when the PPDU that contained
  81. this MPDU started on the medium.
  82. The timestamp is captured by the PHY and given to the
  83. MAC in PHYRX_RSSI_LEGACY.ppdu_start_timestamp
  84. <legal all>
  85. */
  86. #define RX_PPDU_START_2_PPDU_START_TIMESTAMP_OFFSET 0x00000008
  87. #define RX_PPDU_START_2_PPDU_START_TIMESTAMP_LSB 0
  88. #define RX_PPDU_START_2_PPDU_START_TIMESTAMP_MASK 0xffffffff
  89. #endif // _RX_PPDU_START_H_