rx_ppdu_start.h 3.7 KB

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